我在 aws 上使用弹性包群集。细节是
Engine: Memcached
Cache Engine Version: 1.4.5
在使用node ip-port对节点进行telnet时,始终可以访问memcached服务器。 但是在尝试连接PHP时,有时候memcache对象根本就没有被创建。
客户端使用 php-pecl-memcache-3.0.5 进行连接。
正在使用的代码为
$cache = memcache_connect(MEMCACHE_HOST, MEMCACHE_PORT);
有时会发生 $ cache 对象。
请指导我如何解决这个问题。感谢。
答案 0 :(得分:1)
现在使用memcached的更新版本(目前为1.4.14),我相信连接问题可能是1.4.5版本的memcache中的错误导致的。
答案 1 :(得分:1)
试试这个:
<?php
$server_endpoint = "xxx.xx.xfg.sae1.cache.amazonaws.com";
$server_port = 11211;
if (version_compare(PHP_VERSION, '5.4.0') < 0) {
//PHP 5.3 with php-pecl-memcache
$client = new Memcache;
$client->connect($server_endpoint, $server_port);
//If you need debug see $client->getExtendedStats();
$client->set('myKey', 'My Value PHP 5.3');
} else {
//PHP 5.4 with php54-pecl-memcached:
$client = new Memcached;
$client->addServer($server_endpoint, $server_port);
$client->set('myKey', 'My Value PHP 5.4');
}
echo 'Data in the cluster: [' . $client->get('myKey') . ']';