2013年12月10日火曜日

PHPでMemcachedを利用する (php-pecl-memcached)

Memcachedのサンプル

PHPでのMemcachedを利用するサンプルです。

データを登録し、別のブラウザ等からアクセスしてデータが正常に取得できるかをテストしています。
下の2ファイル(add.phpとget.php)を用意しました。

はじめにadd.phpを実行し、つぎにget.phpを別のブラウザ等から実行する事で確認します。
値が取得できていればOKとします。

add.php
<?php
$mc = new Memcached();

// Memcachedサーバを追加
$mc->addServer("localhost", 11211);

// データの追加
$mc->add("key1", "value1");
$mc->add("key2", "value2");
$mc->add("key3", "value3");


get.php
<?php
$mc = new Memcached();

// Memcachedサーバを追加
$mc->addServer("localhost", 11211);

// データの取得
echo "key1 : " . $mc->get("key1") . "\n";
echo "key2 : " . $mc->get("key2") . "\n";
echo "key3 : " . $mc->get("key3") . "\n";


実行時間とメモリダンプの情報も記載しておきます。

[root@1803-zm11 ~]# time /usr/bin/php ./add.php
real    0m0.078s
user    0m0.068s
sys     0m0.010s

[root@localhost ~]# time /usr/bin/php ./get.php
real    0m0.079s
user    0m0.067s
sys     0m0.011s

[root@localhost ~]# memcached-tool localhost:11211 dump
Dumping memcache contents
  Number of buckets: 1
  Number of items  : 3
Dumping bucket 1 - 3 total items
add key2 0 1386578473 6
value2
add key1 0 1386578473 6
value1
add key3 0 1386578473 6
value3



memcachedの有効期限

簡単な使い方ですが、追加するデータごとに有効期限もセットできるようです。
有効期限は1秒単位でセットできます。
例)

<?php
$mc = new Memcached();
$mc->addServer("localhost", 11211);

// 有効期限付きのデータを設定
$mc->add("key1", "value1", 300); //  5分
$mc->add("key2", "value2",  60); //  1分
$mc->add("key3", "value3",  10); // 10秒