Memcached AWS集群未将密钥保存在同一节点中



我在AWS的Elasticache工具中创建了一个memcached集群。

我的程序在每次调用中都会用缓存中的一些数据设置密钥,每次我调用服务器时,它都会更新数据。然而,在用集群测试它时,我发现它似乎正在更改密钥所在的节点或正在擦除它,所以当它更改节点/或擦除密钥时,我就丢失了以前的信息。由于我只调用所有集群的一个端点,它不应该在集群上保持密钥的一致性,而不是删除密钥的内容或在其他地方重新启动密钥吗?

memcached集群是否有任何配置参数可以强制其不更改键的引用节点?

现在我使用的是AWS文件default.memocached1.4的默认配置参数http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/ParameterGroups.Memcached.html我找不到任何信息给我如何解决这个问题的提示。(Pd.当我直接将程序指向特定节点时,一切都很好)

这就是它应该有的样子。

下图展示了一个典型的Memcached和Redis集群。Memcached集群包含1到20个节点您可以对数据进行水平分区。Redis

发件人http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.html

django文档中也有类似的内容。

Memcached的一个优秀特性是能够共享缓存通过多个服务器。这意味着您可以在多台机器,程序将把这组机器视为单个缓存,无需在每个缓存上重复缓存值机器

换句话说,您不能直接从集群中的任何给定节点请求数据。您必须让django的缓存api为您找出如何检索数据。

redis的行为正好相反。一旦写入集群,就可以在集群中的任何节点中查询数据,因为数据将被复制到所有节点。在内存缓存中,它是分片的。

最新更新