memcached のインストール。作業メモ

作ったもの

  • memcached 環境作成(ローカルホスト)
  • telnet でアクセス
  • munin で監視
  • php からアクセス
  • php のセッションを memcached に保存
  • その他

memcached 環境作成(ローカルホスト)

環境は Cent 最新。

yum install -y memcached memcached-devel php-pecl-memcached
chkconfig memcached on
/etc/init.d/memcached start
/etc/init.d/httpd restart

とりあえずこれだけ。
設定ファイルは /etc 配下。 とりあえずデフォルトのまま。

% cat /etc/sysconfig/memcached 
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

telnet でアクセス

気の利いたクライアントソフトが無いので telnet でアクセスする。
memcached を入れると memcached-tool も勝手に入ってる。

詳細はこちら https://gist.github.com/4473665

munin で監視

プラグインフォルダに memcached_ というファイルがあるが、そのままでは動かないらしい。
こちらを参考に http://d.hatena.ne.jp/strkpy/20101106/1288975589

$ cd /etc/munin/plugins
$ ln -snf /usr/share/munin/plugins/memcached_ memcached_bytes
$ ln -snf /usr/share/munin/plugins/memcached_ memcached_counters
$ ln -snf /usr/share/munin/plugins/memcached_ memcached_rates

設定ファイルの追記

/etc/munin/plugin-conf.d/munin-node

[memcached_*]
env.host 127.0.0.1
env.port 11211

そして再起動。

php からアクセス

<?php
$memcache = new Memcached();
$memcache->addServer("localhost", 11211);

for ($i = 0; $i < 100; $i++) {
    $memcache->set("mykey" . $i, "myvalue". $i);
}

適当に100件程突っ込んでみる。
内容をリストアップするようなメソッドが無いので、内容の確認は memcached-tool dump で。

php のセッションを memcached に保存

yum でインストールすると、設定ファイルが作成されている。

$ cat /etc/php.d/memcached.ini 

; Enable memcached extension module
extension=memcached.so

; ----- Options to use the memcached session handler

;  Use memcache as a session handler
;session.save_handler=memcached
;  Defines a comma separated list of server urls to use for session storage
;session.save_path="localhost:11211"

ここのコメントアウトを外すと、セッション情報が memcached に保存される用になる。

その他

エディタ(Eclipse PDT) がPHP のメソッドを補完してくれないのでスケルトンを作成

https://gist.github.com/4472094

適当な場所に設置して読み込ませるとちゃんと補完してくれるようになる。

参考になった記事

運用ガイド。通信がセキュアじゃないらしいので、通信はサーバーの iptables か何かで制御。

memcache のメモリ管理についての詳細。