我刚刚开始在我的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
,但欢迎使用其他方法。
注意:
Memcache::pconnect
但不确定如何使用它。基于official doc,它类似于Memcache::connect
,但连接是持久的。但是我仍然会遇到上述问题。