memcached 資料一覧

libmemcached付属ツール使用方法

2008/5/26更新

対応バージョン: 0.21

libmemcachedに付属する各種ツールについて使用方法を説明する。

基本的に--serversで接続するサーバを指定する。サーバはカンマで区切って複数指定できる。ただし、特定のサーバに接続して処理をすべきツール(memrm,memcat,memcp)は複数指定しても最初の1台にだけ作用する。

memflush

指定したmemcached内のデータをすべて削除する。

例)

% memflush --servers=srv1,srv2

memslap

指定したmemcachedの負荷テストを行う。

デフォルトで10000回のテストを行うが、--execute-number=オプションで任意の回数を指定できる。その他いろいろなオプションがあるがここでは割愛する。

例)

% memslap --servers=srv1,srv2 --execute-number=30000
Threads connecting to servers 1
Took 4.791 seconds to load data

memerror

memcachedのエラーコードの意味を表示する。

例)

% memerror 1
FAILURE

% memerror 2
HOSTNAME LOOKUP FAILURE

memcached-1.2.5の場合、エラーコードは32個定義されている。

 1:FAILURE
 2:HOSTNAME LOOKUP FAILURE
 3:CONNECTION FAILURE
 4:CONNECTION BIND FAILURE
 5:WRITE FAILURE
 6:READ FAILURE
 7:UNKNOWN READ FAILURE
 8:PROTOCOL ERROR
 9:CLIENT ERROR
10:SERVER ERROR
11:CONNECTION SOCKET CREATE FAILURE
12:CONNECTION DATA EXISTS
13:CONNECTION DATA DOES NOT EXIST
14:NOT STORED
15:STORED
16:NOT FOUND
17:MEMORY ALLOCATION FAILURE
18:PARTIAL READ
19:SOME ERRORS WERE REPORTED
20:NO SERVERS DEFINED
21:SERVER END
22:SERVER DELETE
23:SERVER VALUE
24:STAT VALUE
25:SYSTEM ERROR
26:COULD NOT OPEN UNIX SOCKET
27:ACTION NOT SUPPORTED
28:A KEY LENGTH OF ZERO WAS PROVIDED
29:FETCH WAS NOT COMPLETED
30:A TIMEOUT OCCURRED
31:ACTION QUEUED
32:A BAD KEY WAS PROVIDED/CHARACTERS OUT OF RANGE

memrm

指定したmemcachedから特定のキーのデータを削除する。

例)

% memrm --servers=srv1 foo

指定したキーのデータが存在しない場合は以下のようなメッセージが返る。

memrm: foo: memcache error NOT FOUND

memstat

指定したmemcachedの利用状況をレポートする。

例)

% memstat --servers=srv1,srv2
Listing 2 Server

Server: srv1 (11211)
         pid: 17581
         uptime: 127562
         time: 1200116116
         version: 1.2.5
         pointer_size: 32
         rusage_user: 0.492925
         rusage_system: 1.141826
         curr_items: 101
         total_items: 101
         bytes: 0
         curr_connections: 0
         total_connections: 0
         connection_structures: 3
         cmd_get: 100
         cmd_set: 101
         get_hits: 100
         get_misses: 0
         evictions: 0
         bytes_read: 0
         bytes_written: 0
         limit_maxbytes: 67108864
         threads: 0

Server: srv2 (11211)
         pid: 18052
         uptime: 148
         time: 1200113846
         version: 1.2.5
         pointer_size: 32
         rusage_user: 0.0
         rusage_system: 0.0
         curr_items: 1
         total_items: 1
         bytes: 0
         curr_connections: 0
         total_connections: 0
         connection_structures: 2
         cmd_get: 2
         cmd_set: 1
         get_hits: 1
         get_misses: 1
         evictions: 0
         bytes_read: 0
         bytes_written: 0
         limit_maxbytes: 67108864
         threads: 0

memcat

指定したmemcachedに格納されている特定のキーのデータを表示する。

例)

% memcat --servers=srv1 foo
abcde

指定したキーのデータが存在しない場合は何も表示されない。

memcp

memcachedに定義するデータをファイルから取り込む。

ファイル名がキーとなり、ファイル中に記述した文字列がデータとなる。

--set、--add、--replaceにてデータの格納方法を指定し、--flag、--expireにて格納データへのオプションを指定する。

例)

% echo -n 123 > foo
% echo -n abcde > bar

% memcp --servers=srv1 --set foo bar

% memcat --servers=srv1 foo
123
% memcat --servers=srv1 bar
abcde

(*) ファイル中に改行コードを入れるとその文字も1文字と数えられてしまうので注意が必要である。ここでは「echo -n」として改行コードを入れないようにしている。

関連資料・記事