Как соотносится синтаксис 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

Другие вопросы по тегам