皆さんPHPでセッション使いますか?
ブラウザ側はCookieを利用するとして、サーバ側はどうしていますか?
デフォルトのまま=即ちファイルに保存という方が多いかと思います。
さて今回はそのサーバ側のセッションをmemcache上に保存してみます。
メリットは最後にお伝えするとして、とりあえず設定方法を。
サーバはCentOS5を想定しています。
1 2 |
yum install memcached /etc/init.d/memcached start |
これでmemcachedのインストールと起動は終了です。
いつものお約束ですが、正しくmemcachedが動作しているかtelnetで接続してみましょう。
1 2 3 4 5 6 7 |
telnet localhost 11211 #デフォルトで11211ポートで動作します。 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. #ここでstatsと入力しenter |
統計情報が出てきたでしょうか?
次にphp.iniを変更し、セッションをmemcachedに振ります。
設定変更箇所は以下の通りです。
1 2 3 4 5 |
[Session] ; Handler used to store/retrieve data. ; session.save_handler = files ←この行をコメントアウトし下記を加えます session.save_handler = memcache session.save_path = "tcp://192.168.xxx.xxx:11211" |
もちろんsession.save_pathのIPアドレスはmemcachedが動作しているサーバのアドレスを指定します。
後は/etc/init.d/httpd restartすれば適用されます。
memcachedに保存するメリットは以下の通り
– メモリ上なので読み書き高速
– フロントサーバが分散していてもセッションを共有できる←このメリットでかい
しかし一方で
– メモリを喰う(大したこと無いけど)
– memcachedもしくはサーバをリスタートするとセッションが消える←このデメリットでかい
というデメリットもあります。
場合に応じて使い分けて下さい。
今回は以上です。