PHP-Memcache:如何存储Memcache连接的对象

时间:2017-04-12 03:24:06

标签: php caching memcached

我刚刚开始在我的PHP应用程序中使用Memcached Server,我正在为我的多语言应用程序缓存语言字符串。在我的环境中,我已经拥有PHP版本5.6.14,PHP-Memcache扩展版本3.0.8,Memcached Server v1.4.4-14-g9c660c0侦听端口11211.我正在使用Xampp。一切都在Windows 10机器上运行。

但我对如何使用PHP存储Memcached服务器的连接对象有疑问?目前我正在使用$GLOBALS但似乎无法正常工作,因为它总是在我尝试使用旧连接时创建新连接(如果存在)。以下是我所拥有的(我的课程的一部分)基于我在互联网上找到的内容。

class CacheMemcache {
    function __construct($name = false, $lifetime = 600){
        if( ! class_exists("Memcache") ){ //Check if Memcache is installed
            exit("PHP Memcache extension does not exists! You need to install it first.");
        }
        // every time this class is initialized, isset return FALSE
        if (isset($GLOBALS["memcache"])) { //Check if already connected to memcached
            $this->memcache = $GLOBALS["memcache"];
        }
        // every time this class is initialized, it always go to the else below
        else{ //No, make new connection
            $this->memcache = new Memcache();
            $this->memcache->connect($this->host, $this->port);
            $GLOBALS["memcache"] = $this->memcache;
        }
    }
}

那么如何使用PHP存储Memcached的连接?一些指导表示赞赏。不一定只使用$GLOBALS,但欢迎使用其他方法。

注意:

  1. 我知道有一个名为PHP-Memcached扩展的新扩展,但我目前的操作系统是Windows,我找不到任何可以在Windows环境中安装PHP-Memcached扩展的地方。但是将来会考虑迁移。只是先完成框架。
  2. 我也意识到PHP-Memcache具有持久连接Memcache::pconnect但不确定如何使用它。基于official doc,它类似于Memcache::connect,但连接是持久的。但是我仍然会遇到上述问题。

0 个答案:

没有答案