2012-06-20 2 views
2

Я использую резистор кластер на aws. Подробная информация:Проблемы с подключением эластичных соединений Aws с php

Engine: Memcached 
Cache Engine Version: 1.4.5 

При выполнении telnet к узлу с ip-портом узла сервер 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), и я считаю, что проблемы с подключением могли быть результатом ошибок в версии memcache версии 1.4.5.