try 尝试
$try_count = 3;
while($try_count--)
使得循环体至多执行 3 次,从而避免了死循环的可能$client_list = $store->get($key, null, $cas);
if(false === $client_list
显然 false 是 $store->get 失败时的返回值
分支内的代码是用于处理这个情况的$cas 是你 get 方法的参数,你没有给出方法的定义,人家如何能知道?
$try_count = 3;
while($try_count--)
使得循环体至多执行 3 次,从而避免了死循环的可能$client_list = $store->get($key, null, $cas);
if(false === $client_list
显然 false 是 $store->get 失败时的返回值
分支内的代码是用于处理这个情况的$cas 是你 get 方法的参数,你没有给出方法的定义,人家如何能知道?
$try_count = 3;
while($try_count--)
$try_count是嘗試次數,等於3
2 $client_list = $store->get($key, null, $cas);
if(false === $client_list)
为什么要判断false false 表示獲取不到數據
if($store->getResultCode() == \Memcached::RES_NOTFOUND)
判断了false 上面的代码是干什么的。?上面的代碼是,當獲取不到數據,返回memcached的返回碼,用於查詢出錯原因3 $cas这个又是什么。。
CAS,又称Compare-and-Swap,代表一种原子操作。
可以參考這裡:http://blog.csdn.net/tenfyguo/article/details/8456034
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
/* ... */
}
?>这个代码是官方文档上拿过来的 判断是否操作成功不是直接getResultCode()判断嚒 为什么事先判断false
还有这个$cas=1
cas_id可以看成存储中的md5值,存储中的数据每次变化md5(cas_id)值都会变化,从存储中读取数据的同时获得这个md5(cas_id),等到更新时提供这个md5(cas_id)让memcache判断能否更新存储中的数据。如果memcache发现当前存储中的数据的md5(cas_id)不是客户端提供的md5(cas_id),就不更新返回false但在这个代码起到什么作用我还是不理解