2012-06-20 54 views
2

我正在使用elasticache集群aws。详细信息如下:Aws elasticache与php的连接问题

Engine: Memcached 
Cache Engine Version: 1.4.5 

在telnet节点上,使用节点ip-port,memcached服务器始终可以访问。 但是当试图连接PHP时,有时候memcache对象根本就没有被创建。

客户端使用php-pecl-memcache-3.0.5进行连接。

正在使用的代码是

$cache = memcache_connect(MEMCACHE_HOST, MEMCACHE_PORT); 

什么情况是,有时,是没有得到创建$缓存对象。

请指导我如何解决这个问题。谢谢。

回答

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') . ']'; 
1

现在使用更新版本的memcached(目前是1.4.14),我认为连接问题可能是由1.4.5版本的memcache中的错误引起的。