アーカイブ

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ソフトウェアを取り上げ、インストール方法、使い方、性能測定結果などに触れていきたいと思います。

2 comments to memcachedクライアントライブラリ(Perl,PHP編)

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

エラー: si-captcha.phpプラグインによると、PHPにGD image supportが見当たりません!

PHPにGD image supportが有効になっていない理由については、サーバ管理者にお問合せください。

エラー: si-captcha.phpプラグインによると、PHPにimagepng機能が見当たりません!

PHPにimagepng機能が有効になっていない理由については、サーバ管理者にお問合せください。