Memcached
概要
分散メモリキャッシュシステム
キャッシュアルゴリズムは、LRU(Least Recently Used)
操作
起動
設定ファイルはなく、オプションで挙動を指定する。
memcached [options]options
-p
TCP port (default: 11211)
-d
デーモンとしてバックグラウンドで起動
-m
最大メモリサイズ(MB)
-h
ヘルプ
etc.
コマンド
set
データの保存
set <key> <flags> <exptime> <bytes>\r\n
<data block>\r\n
key
250文字までのキー
flags
データと共に保存・返却される付随的な情報。
クライアントが任意の値を設定する。
Memcachedがその意味を解釈する事はない。exptime
有効期限となる現在時刻からの秒数かUnixタイムを指定できる。
現在時刻からの秒数は、30日分までしか指定できない。
それを超えるとUnixタイムと判断される。bytes
データのバイト数
add
キーが存在していない時のみ、保存
replace
キーが存在している時のみ、保存
append
既存のデータへの後方追記
prepend
既存のデータへの前方追記
cas
データを取得してから、そのデータが他者に更新されていない時だけ更新に成功する。
cas <key> <flags> <exptime> <bytes> <cas unique>\r\n
<data block>\r\n
cas unique
getsコマンドで取得できる更新判定のためのデータ
get
データの取得。
キーは複数指定可能。
get <key>*\r\n
gets
データに加え、CASの識別子も取得できる。
delete
データの削除
delete <key>\r\n
incr/decr
値の加減演算。
扱えるのは、正の整数値のみ。
incr <key> <value>\r\n
value
加算/減算する正の整数値
touch
有効期限の更新
touch <key> <exptime>\r\n
flush_all
全データの無効化
引数に実行タイミングを秒で指定できる。
stats
各種統計情報の取得
引数で、情報種別の指定も可能。
settings, items, sizes, cachedump, etc.
ツール
libmemcached
http://docs.libmemcached.org/index.html#client-applications
C言語用のクライアントライブラリ
ツール群が同梱されている。
複数のMemcachedサーバを扱う時は、telnetより便利
memcat
指定されたキーのデータ出力
memcat --servers=server1,server2 key ...
--servers
接続先サーバの指定
memdump
キーの一覧出力
memrm
指定されたキーのデータ削除
memrm key ...
memstat
statsコマンドの実行
-args
statsコマンドの引数
memtouch
有効期限の更新
memtouch <options> key
--expire
有効期限の指定
memcache.php
http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/