Zend Frameworkプロジェクトがあり、私はをRedisクライアントとして使用することに決めました。 RediskaにはZF用のキャッシュバックエンドアダプタ - Rediska_Zend_Cache_Backend_Redisがあります。キャッシュ中に「接続の読み取りがタイムアウトしました」というエラーが発生しました
オブジェクトのDBコレクションからフェッチし、キャッシュに保存しようとしましたが、エラーが発生しました。接続の読み取りがタイムアウトしました。私のコード例:
$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にはサイズの制限がありますか?
値の赤いサイズの制限はこれよりもはるかに大きいです。文字列値の理論上の制限は512MBです。 26KBのオブジェクトを格納するには問題ありません。 –
readTimeoutパラメータの値は何ですか? http://rediska.geometria-lab.net/documentation/configuration/servers/ –
私は/etc/redis/redis.confにタイムアウト0を設定し、rediskaのreadTimeoutにはデフォルト値 - nullがあります。 – Dmitro