PHP Memcached CAS (проверить и установить) проблема
Привет всем, вот версия моей текущей настройки Memcached (1.2.2) Pecl Memcached Client 1.0.2 (с использованием libmemcached 0.43)
Проблема: я не могу получить токен, возвращенный во время запроса на получение
Вот код, о котором идет речь!
27 public function action_test() {
28 //phpinfo();
29 $m = Model_Mem::getSingleton();
30 $found = $m->get('navigation');
31 echo (int)count($found).'<br />'; // Returns an array of navigation objects
32
33 $cas = 0;
34 $found = $m->get('navigation', null, &$cas);
35 echo (int)count($found); // Returns nothing!
36
37 exit;
38 }
Выход первого эхо-сигнала равен 7, а второй эхо-сигнал равен 1. Кроме того, переменная $cas и переменная $found из второй группы кода являются пустыми. Я не уверен на 100%, правильно ли я это делаю, но токен, похоже, не работает для меня вообще. Я просмотрел документацию php Memcached без упоминания о каком-либо флаге включения CAS, который я мог легко заметить. Я также попытался заглянуть на сайт memcached.org за информацией, но я потерян!
У меня никогда не было с этим проблем, просто каждый раз, когда я пытаюсь использовать функциональность cas при получении запроса, я делаю что-то не так. Спасибо, что помогли мне!
* EDIT Вот что возвращает функция Model_Mem::getSingleton()
static function getSingleton() {
if (self::$m)
return self::$m;
self::$m = new Memcached();
$servers = array(
array('127.0.0.1', 11211, 25),
array('127.0.0.1', 11212, 25),
array('127.0.0.1', 11213, 25),
array('127.0.0.1', 11214, 25)
);
// Sets up some options for the memcache server
self::$m->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
self::$m->setOption(Memcached::OPT_PREFIX_KEY, Kohana::config('globals.prefix'));
self::$m->addServers($servers);
return self::$m;
}
2 ответа
Arg, последняя [безопасная] версия memcached Debian еще не имела этой функции. Обновление до последней версии путем установки исходного кода сервера memcached и все хорошо.
Просто FYI, CAS означает "сравнить и обменять": https://en.wikipedia.org/wiki/Compare-and-swap