memcached 設定メモ

memcachedをPHPから使えるようにしたので、設定方法をメモします。

1. memcached install
最初にmemcachedをインストールします。repositoryはremiにしました。

[root@hoge ~]# yum install memcached --enablerepo=remi
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * remi: remi-mirror.dedipower.com
 * updates: ftp.nara.wide.ad.jp
Excluding Packages in global exclude list
Finished
303 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package memcached.x86_64 0:1.4.5-2.el5.remi set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================
 Package                  Arch                  Version                         Repository           Size
==========================================================================================================
Installing:
 memcached                x86_64                1.4.5-2.el5.remi                remi                 73 k

Transaction Summary
==========================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 73 k
Is this ok [y/N]: y
Downloading Packages:
memcached-1.4.5-2.el5.remi.x86_64.rpm                                              |  73 kB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : memcached

Installed:
  memcached.x86_64 0:1.4.5-2.el5.remi

Complete!

完了したら、memcachedを立ち上げたら、telnetでlocalhostのport:11211に接続します。
memcachedのデフォルトportは11211で、接続出来たら stats を実行すると、下記となります。
telnetからquit出来なかった場合hあ、ctrl + ] を実行後にquitします。

[shmachid@hoge ~]$ memcached -u memcached -d
[shmachid@hoge ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats
STAT pid 32743
STAT uptime 79
STAT time 1312625362
STAT version 1.4.5
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.000999
STAT curr_connections 10
STAT total_connections 11
STAT connection_structures 11
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END

続いて、memcachedへデータを入れてみます。
下記では、key:testに対して、value:12345をセットしています。

[shmachid@hoge ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set test 0 0 5
12345
STORED
get test
VALUE test 0 5
12345
END

2. PHP拡張モジュール install
memcachedは使えるようになったので、次にPHPからmemcachedを使用する為に拡張モジュールをインストールします。
peclには”memcached”もあるようですが、こちらはlibmemcachedの事前インストールが必要となる為、
今回は”memcache”をインストールしました。

[root@hoge ~]# pecl install memcache

PHPからmemcachedに追加出来るか確認します。下記では、key:hogeに対して、value:fugaをセットしています。

<?php

 $memcache_obj = memcache_connect("localhost", 11211);

 $memcache_obj->add('hoge', 'fuga', false, 0);

?>

上記のPHPを実行後、再度telnetで接続してプログラムでセットした値が格納されたかを確認します。

[shmachid@hoge ~]$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
get hoge
VALUE hoge 0 4
fuga
END

key:hoge に対して、value:fugaが取れましたので、確認OKです。

以上です。