Как соотносится синтаксис Elasticache с синтаксисом Memcache (с использованием PHP)?
После установки memcache на мой экземпляр EC2 Linux, используя это:
:~$ 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);
Мой вопрос в том, что такое синтаксис Elasticache, который коррелирует с Memcache connect()
, set()
, а также get()
команды? Я полностью сбит с толку частью Elasticache в AWS PHP SDK.
2 ответа
Вам необходимо создать узел эластичного кэша (Консоль управления AWS), к которому вы можете подключиться через клиент memcache, посмотрите руководство по началу работы.
Если вы хотите управлять своими узлами кэша с помощью своего кода, вам следует использовать Elasticache SDK.
$memcache->connect('myfirstcacheinstance.evdfes.0001.use1.cache.amazonaws.com', 11211);
Вам не нужен сервер memcache на вашем экземпляре EC2 Linux, достаточно иметь расширение PECL php5-memcache.
Попробуй это:
<?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') . ']';
Убедитесь, что вы разрешили OUTPUT на порт 11211