嘿所有,这是我当前设置的版本 Memcached(1.2.2) Pecl Memcached Client 1.0.2(使用libmemcached 0.43)
问题:在获取请求期间我无法获得一个cas令牌
以下是有问题的代码!
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 }
第一个echo的输出为7,第二个echo为1.此外,$ cas变量以及第二组代码中的$ found变量都是空的。我不是100%确定我是否正确这样做但是cas令牌似乎根本不适合我。我已经通过php Memcached文档,没有提及我可以轻易发现的任何CAS启用标志。我也试着看一下memcached.org网站上的一些信息,但我输了!
我从来没有遇到任何问题,它只是每当我尝试在获取请求上使用cas功能时我做错了。谢谢有人帮助我!
*编辑 这是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;
}
答案 0 :(得分:0)
Arg,debian的最新[安全] memcached版本还没有这个功能。通过安装memcached服务器的源代码升级到最新版本,一切都很顺利。
答案 1 :(得分:-1)
仅供参考,CAS表示“比较和交换”:https://en.wikipedia.org/wiki/Compare-and-swap