2012-07-27 62 views
7

我有一個頁面,有幾千個用戶可以同時點擊一個方法。我每次都連接下面的代碼。由於這將轉到單獨的memcache服務器,這會導致速度變慢,有沒有辦法連接一次並重新使用該連接?每次請求後都必須關閉連接嗎?PHP memcache連接

$primary_connected = $memcache_primary->connect($primary_memcache_server, 11211); 
if($primary_connected){ 
     $data = $memcache_primary->get($key); 
     if ($data != NULL) { 
      return data; 
     } 
} 
else{ 
/////Get data from database 
} 

回答

3

如果您使用的是PHP memcached類(一個與d就完了,不memcache),然後是的,你可以打開一個永久連接。

您可以將持久標識傳遞給構造函數,該構造函數將打開持久連接,並且後續使用相同持久標識的實例將使用該連接。

$memcached = new Memcached('method_name_or_persistent_identifier'); 
$memcached->addServer(...); 
// use it 

希望有所幫助。

請參閱Memcached::__construct()瞭解更多詳情。

+0

謝謝!我使用了memcache而不是memcached。我現在將轉向memcached,因爲它們允許持久連接。 memcached只是memcache的新版本?謝謝 – 2012-07-27 22:55:45

+1

是的,'Memcached'只是一個支持更多功能的新版本,如持久連接和CAS令牌。看到[這個問題和接受的答案](http://stackoverflow.com/questions/1442411/using-memcache-vs-memcached-with-php)的更多細節。儘量使用'Memcached'擴展名,而不是'memcache' – drew010 2012-07-27 23:07:44

+0

謝謝。還有一個問題 。如果我使用http://php.net/manual/en/memcache.pconnect.php會導致任何問題?因爲我已經實現了memcache,並希望在安裝memcached後看到性能差異。如果我沒有看到任何主要與我使用的方式優勢我將與memcache一起去。 – 2012-07-28 19:30:46