Ошибка Redis "Тайм-аут чтения соединения" во время кэширования
У меня есть проект Zend Framework, и я решил использовать Rediska в качестве клиента Redis. Rediska имеет адаптер кеш-памяти для ZF - Rediska_Zend_Cache_Backend_Redis.
Я выбираю из коллекции объектов БД и пытаюсь сохранить ее в кеше, но получаю ошибку: истекло время ожидания соединения Мой пример кода:
$rediskaOptions = array(
'name' => 'cache',
'namespace' => 'Cache_',
'servers' => array( 'cache' => array(
'host' => Rediska_Connection::DEFAULT_HOST,
'port' => Rediska_Connection::DEFAULT_PORT,
'password' => 'qwerty'
)
)
);
$cache = Zend_Cache::factory('Core', 'Rediska_Zend_Cache_Backend_Redis',
array('lifetime' => NULL, 'automatic_serialization' => true),
array('rediska' => $rediskaOptions), false, true
);
$cacheId = 'news_main';
if (!($topics = $cache->load($cacheId))) {
$topics = DAOFactory::getInstance()->getTopicDAO()->fetchTopic(1);
$cache->save($topics, $cacheId);
}
Размер контента после сериализации составляет 26787 байт. Может быть, у Redis есть ограничения по размеру для отправки?
1 ответ
Если это поможет, я использую Rediska с ZF. Вот как я это настроил.
$options = array(
'servers' => array(
array( 'host' => '127.0.0.1',
'port' => 6379,
'alias' => 'cache'
),
//'name' => 'cache',
//'namespace' => 'Cache_'
)
);
$rediska = new Rediska($options);
$frontendOptions = array('automatic_serialization' => true);
$backendOptions = array('rediska' => $rediska);
$cache = Zend_Cache::factory( 'Core',
'Rediska_Zend_Cache_Backend_Redis',
$frontendOptions,
$backendOptions,
false,
true
);
Разница, которую я вижу, в опциях бэкэнда. Я указываю rediska на экземпляр rediska.