我们将 Zend Cache 与一个 memcached 后端一起使用,该后端指向一个具有 2 个缓存节点的 AWS ElastiCache 集群。我们的缓存设置如下所示:
$frontend = array(
'lifetime' => (60*60*48),
'automatic_serialization' => true,
'cache_id_prefix' => $prefix
);
$backend = array(
'servers' => array(
array( 'host' => $node1 ),
array( 'host' => $node2 )
)
);
$cache = Zend_Cache::factory('Output', 'memecached', $frontend, $backend);
过去,当使用单个 EC2 服务器从缓存中写入和读取时,我们没有注意到缓存有任何问题。
但是,我们最近引入了第二台 EC2 服务器,突然间我们发现从一台服务器写入缓存并从另一台服务器读取时出现问题。两台服务器都由同一个 AWS 账户管理,两台服务器都没有单独写入或读取缓存的问题。两者使用相同的缓存配置。
服务器 A执行$cache->save('hello', 'message');
$cache->load('message');
来自服务器 A的后续调用返回hello的预期结果。
但是,当服务器 B执行时$cache->load('message');
,我们得到false。
就我对 ElastiCache 的理解而言,发出读取请求的服务器应该与返回的缓存值无关。任何人都可以对此有所了解吗?