【问题标题】:PHP memcache connectPHP 内存缓存连接
【发布时间】:2012-07-26 15:33:12
【问题描述】:

我有一个页面,几千名用户可以同时点击一个方法。我确实有以下代码,我每次都连接。由于这将转到单独的内存缓存服务器,这会导致速度变慢有没有办法只连接一次并重用该连接?每次请求后我都必须关闭连接吗?

$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 
}

【问题讨论】:

    标签: php memcached scalability


    【解决方案1】:

    如果您使用的是PHP memcached 类(末尾带有d 的类,而不是memcache),那么可以,您可以打开一个持久连接。

    您可以将持久 ID 传递给将打开持久连接的构造函数,并且使用相同持久 ID 的后续实例将使用该连接。

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

    希望对您有所帮助。

    更多详情请见Memcached::__construct()

    【讨论】:

    • 谢谢!我使用了 memcache 而不是 memcached 。我现在将转移到 memcached,因为它们允许持久连接。 memcached 只是 memcache 的新版本吗?谢谢
    • 是的,Memcached 只是一个较新的版本,它支持更多功能,例如持久连接和 CAS 令牌。有关更多详细信息,请参阅this question and accepted answer。尽可能使用Memcached 扩展名,而不是memcache
    • 谢谢。还有一个问题 。如果我使用 php.net/manual/en/memcache.pconnect.php 会导致任何问题吗?因为我已经实现了 memcache 并希望在安装 memcached 后看到性能差异。如果我没有看到我使用它的任何主要优势,我将使用 memcache。
    • 我认为这不会引起任何问题。试一试,看看您是否注意到使用它会提高性能。在你提到它之前我不知道这个功能。
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多