memcached返回重复的keyvalue对

2024-03-28 11:14:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在Django(Python)产品中使用memcached服务器集群进行缓存,并尝试了cmemcache和Python memcache作为API。问题是在高并发的情况下,我们开始有重复的键值对,也就是说,对于一个键,我们有多个值。有没有人遇到过同样的情况?杀人的原因是什么?在

由于memcached服务器本身并不是为了保持键值对的唯一性而与每个服务器通信,所以这项任务留给客户机库,所以我们试图进一步了解cmemcache和python memcache是如何工作的。在


Tags: django服务器api客户产品情况集群原因
2条回答

客户机应该根据它的密钥找出值所在的memcache服务器。如果您使用两个不同的客户机(或同一客户机的两个不同配置),他们可能会使用不同的算法将密钥映射到服务器,从而将同一密钥的值发送到两个不同的服务器。在

您可能想切换到pylibmcpython-libmemcached。当我去年回顾python memcache客户机时,您提到的两个客户机要么已经退休,要么已经破产,要么两者兼而有之。在

哪个是更大的问题:拥有冗余数据,还是为一个查询返回多个结果?在

如果前者是问题所在,那么就有一个棘手的并发问题要解决。在

但是,如果后者是问题所在,为什么不给每个在memcache中存储值的主机一个唯一的标识符,并在任何键之前加上它呢?在

相关问题 更多 >