2010年 8月 26日 はてなブックマーク -
タグ: #PHP #memcache #memcached

$memcached->addServer(‘localhost’, 11211);

$key = ‘hoge’;
$value1 = ‘fuga’;
$value2 = ‘mote’;

$memcached->set($key, $value1);
$cas = null;
$resultValue = $memcached->get($key, null, $cas);
assert($resultValue === $value1); //fugaが返される

$success = $memcached->cas($cas, $key, $value2);
$resultValue = $memcached->get($key, null, $cas);

assert($success === true); //更新は成功
assert($resultValue === $value2); //更新されmoteが返される


$memcached->set($key, $value1);
$resultValue = $memcached->get($key, null, $cas);

$memcached->set($key, $value1); // 取得したあとに誰かがもう一度セットしたとする

//更新しようとする
$success = $memcached->cas($cas, $key, $value2);

assert($success === false); //更新失敗
assert($resultValue === $value1); //更新されずhogeが返される

ウノウラボ Unoh Labs: リビドーに赴くままlibmemcachedをPHPから使ってみる

CASを使った一貫性のサンプルです。
rpm化しつつのインストール方法も解説されています。


1年前 | | 2010年 8月 26日 | このエントリーを含むはてなブックマーク