当ブログをご覧のみなさまこんにちは。さくらインターネット研究所の大久保です。
前回までKVSとmemcachedプロトコルの概要を説明させていただきました。
今回はプログラミング言語からmemcachedプロトコルを介してKVSにアクセスする方法について、Perl、PHPのクライアントライブラリのインストール方法、簡単なコードを解説したいと思います。
Perl
まずはクライアントライブラリをインストールします。以下はFreeBSDのPortsを使った方法です。手元の検証環境ではFreeBSD 8.0-RELEASE、perl 5.8.9を使用しています。
% cd /usr/ports/databases/p5-Cache-Memcached
% make install
いくつかの関連するモジュールも一緒にインストールされます。
Perlクライアントモジュールを利用してKVSにアクセスする簡単なコードを以下に示します。
#!/usr/bin/env perluse Cache::Memcached;
$mem = Cache::Memcached->new({'servers' =>["127.0.0.1:11211"]});
$mem->set('name','ohkubo'); print "set:name = ohkubo\n";
$value = $mem->get('name'); print "get:name = $value\n";$mem->delete('name');print "delete:name\n";
$value = $mem->get('name'); print "get:name = $value\n";$mem->set('age','29'); print "set:age = 29\n";
$mem->incr('age'); print "incr:age\n";
$value = $mem->get('age'); print "get:age = $value\n";
青文字で示した部分がライブラリのメソッドを呼んでいる部分で、ここでは、set、get、delete、incrを試しています。
実行結果は以下のようになります。
set:name = ohkubo
get:name = ohkubo
delete:name
get:name =
set:age = 29
incr:age
get:age = 30
他のメソッドについてはperldocで表示されるドキュメントをご覧ください。
% perldoc Cache::Memcached
PHP
PHPの場合も、まずはクライアントライブラリをインストールします。以下はFreeBSDのPortsを使った方法です。
既にapache、PHPのインストールが済んでいるものとして説明します。
手元の検証環境では、FreeBSD 8.0-RELEASE、Apache-2.2.14、PHP-5.2.12を使用しています。
% cd /usr/ports/databases/pecl-memcache
% make install% cat /usr/local/etc/php/extensions.ini
extension=zlib.so
extension=session.so
extension=memcache.so ← 追加される% /usr/local/etc/rc.d/apache22 restart
PHPクライアントモジュールを利用してKVSにアクセスする簡単なコードを以下に示します。
<?
header("Content-type:text/plain");$mem = new Memcache;
$mem->connect('127.0.0.1','11211');$mem->set('name','ohkubo'); print "set:name = ohkubo\n";
$value = $mem->get('name'); print "get:name = $value\n";$mem->delete('name',0); print "delete:name\n";
$value = $mem->get('name'); print "get:name = $value\n";$mem->set('age','29'); print "set:age = 29\n";
$mem->increment('age'); print "increment:age\n";
$value = $mem->get('age'); print "get:age = $value\n";
?>
青文字で示した部分がライブラリのメソッドを呼んでいる部分で、ここでは、set、get、delete、incrementを試しています。
実行結果は以下のようになります。
set:name = ohkubo
get:name = ohkubo
delete:name
get:name =
set:age = 29
increment:age
get:age = 30
他のメソッドについてはPHPのWebマニュアルをご覧ください。
http://php.net/manual/ja/book.memcache.php
終わりに
これまでKVS,memcachedプロトコルについて基本的なところを説明してきました。次回からはいくつか具体的なKVSソフトウェアを取り上げ、インストール方法、使い方、性能測定結果などに触れていきたいと思います。


[...] This post was mentioned on Twitter by perl ism,Kotaro Tsukui,perl ism,perl ism,横田真俊 and others. 横田真俊 said:RT @ken_washikita:さくらインターネット研究所ブログ memcachedクライアントライブラリ(Perl,PHP編 [...]
[...] [Web]memcachedクライアントライブラリ(Perl,PHP編) ? さくらインターネット研究所 [...]