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