try 尝试
$try_count = 3;
while($try_count--)
使得循环体至多执行 3 次,从而避免了死循环的可能$client_list = $store->get($key, null, $cas);
if(false === $client_list
显然 false 是 $store->get 失败时的返回值
分支内的代码是用于处理这个情况的$cas 是你 get 方法的参数,你没有给出方法的定义,人家如何能知道?

解决方案 »

  1.   

    1 $try_count是干什么用得
    $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
      

  2.   


    <?php
    $m = new Memcached();
    $m->addServer('localhost', 11211);$m->add('foo', 'bar');
    if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
        /* ... */
    }
    ?>这个代码是官方文档上拿过来的  判断是否操作成功不是直接getResultCode()判断嚒 为什么事先判断false
    还有这个$cas=1
      

  3.   

    $cas我就知道  
    cas_id可以看成存储中的md5值,存储中的数据每次变化md5(cas_id)值都会变化,从存储中读取数据的同时获得这个md5(cas_id),等到更新时提供这个md5(cas_id)让memcache判断能否更新存储中的数据。如果memcache发现当前存储中的数据的md5(cas_id)不是客户端提供的md5(cas_id),就不更新返回false但在这个代码起到什么作用我还是不理解