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です。
以上です。