如何将Elasticache语法与Memcache语法相关联(使用PHP)


How to does Elasticache syntax relate to Memcache syntax (using PHP)?

在我的EC2 Linux实例上安装memcache后,使用以下命令:

:~$ sudo apt-get install memcached php5-memcache

我可以立即做到这一点:

$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$array_result=$this->db->query("SELECT * where ...."); // some DB query
$memcache->set('my_items', $array_result, false, 60*60*24);    

以后可以访问这个缓存的数组,如下所示:

$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$my_items=$memcache->get('my_items');
var_dump($my_items);

我的问题是,与memcache的connect()set()get()命令相关的Elasticache语法是什么?我完全被AWS PHP SDK的Elasticache部分弄糊涂了。

您需要创建elasticache节点(AWS管理控制台),可以通过memcache客户端连接到该节点,请参阅入门指南。

如果你想用你的代码控制你的缓存节点,那么你应该使用Elasticache SDK。

$memcache->connect('myfirstcacheinstance.evdfes.0001.use1.cache.amazonaws.com', 11211);

EC2Linux实例上不需要memcache服务器,只要有php5-memcache PECL扩展就足够了。

试试这个:

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

确保您已允许端口11211 上的OUTPUT