Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

memcachedやってみた1

WEB+DB PRESSのバックナンバーを幾つか買って読んでたら前から気になってたmemcachedの記事が載ってたので自分でもやってみたその記録。
以下はそのmemcachedインストールまで。
WEB+DB PRESS Vol.47
まず自分の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でやってみる。