2012-07-27 56 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