読者です 読者をやめる 読者になる 読者になる

miyabihitoの日記

個人的な技術メモ

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/

apc.phpMemcached

資料