$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化しつつのインストール方法も解説されています。
