memcachedやってみた1
WEB+DB PRESSのバックナンバーを幾つか買って読んでたら前から気になってたmemcachedの記事が載ってたので自分でもやってみたその記録。
以下はそのmemcachedインストールまで。
まず自分のSnow Leopardにmemcachedをインストールする。
とその前にmemcachedに必須のライブラリlibeventをインストール。
% wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz % tar zxf libevent-1.4.13-stable.tar.gz % cd libevent-1.4.13-stable % ./configure % make % make install make install-recursive Making install in . test -z "/usr/local/bin" || ./install-sh -c -d "/usr/local/bin" /usr/bin/install -c 'event_rpcgen.py' '/usr/local/bin/event_rpcgen.py' install: /usr/local/bin/event_rpcgen.py: Permission denied make[3]: *** [install-binSCRIPTS] Error 71 make[2]: *** [install-am] Error 2 make[1]: *** [install-recursive] Error 1 make: *** [install] Error 2
あれ? エラーが出た。
Mac de memcached - 虚心生白
少し調べたら上のエントリを見つけた。
どうやらroot権限がないとだめらしい。
% sudo make install % sudo make verify
できた。
続いてmemcachedをインストール。
% wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz % tar zxf memcached-1.4.4.tar.gz % cd memcached-1.4.4 % ./configure % make % sudo make install
できた。準備OK。
早速、memcachedを起動させてみる。
% memcached -vv -p 11211 slab class 1: chunk size 104 perslab 10082 slab class 2: chunk size 136 perslab 7710 slab class 3: chunk size 176 perslab 5957 ......... slab class 38: chunk size 458992 perslab 2 <4 server listening <5 server listening <6 send buffer was 9216, now 3728270 <6 server listening (udp) <7 send buffer was 9216, now 3728270 <7 server listening (udp)
-vv は very verbose mode、-p はポート番号指定で 11211 に指定。
とりあえず起動には成功。
以後、memcachedを使うとこの画面にだらだらとログが出るので、別のターミナル画面を用意。
telnetでmemcachedに接続してみる。
% telnet telnet> open localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'.
statsで状態表示。
stats STAT pid 17464 STAT uptime 385 STAT time 1261916198 STAT version 1.2.8 ....... STAT curr_items 0 STAT total_items 0 STAT bytes 0 ....... STAT limit_maxbytes 67108864 STAT threads 2 STAT accepting_conns 1 STAT listen_disabled_num 0 END
何かデータを記憶させてみる。
以下を入力する。
set 「キー」「flag」「有効期限」「何byte記憶させるか」改行して、
「値」
set myid 0 60 9 rightgo09
60秒以内なら getコマンドで値を取得できる。
get myid VALUE myid 0 9 rightgo09 END
60秒経つと取れなくなる。
get myid END
OK。
じゃあ次Perlでやってみる。