2010-08-16 26 views
0

嘿,這裏有我的當前設置的版本 Memcached的(1.2.2) PECL的memcached客戶端1.0.2(使用libmemcached 0.43)PHP Memcached的CAS(檢查和設置)問題

問題:我不能獲取在獲取請求期間返回的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 } 

從第一回波的輸出是7,和所述第二回聲是1。此外,$ CAS變量以及來自第二組的碼$發現變量都爲空。我不是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

什麼是Model_Mem? Model_Mem-> get()函數如何實現? – 2010-08-16 07:48:47

+0

Model_Mem :: getSingleton()返回一個memcached對象http://php.net/manual/en/book.memcached.php。我用更多的信息編輯了這個問題。感謝您的幫助。 – Shawn 2010-08-16 17:00:28

回答

0

精氨酸,Debian的最新的[安全] memcached的版本沒有這個功能呢。通過安裝memcached服務器的源代碼升級到最新版本,一切都很好。