memcachedクライアントライブラリ(Perl,PHP編)
当ブログをご覧のみなさまこんにちは。さくらインターネット研究所の大久保です。
前回まで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 perl
use 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ソフトウェアを取り上げ、インストール方法、使い方、性能測定結果などに触れていきたいと思います。