2024-03-28 11:14:23 发布
网友
我们在Django(Python)产品中使用memcached服务器集群进行缓存,并尝试了cmemcache和Python memcache作为API。问题是在高并发的情况下,我们开始有重复的键值对,也就是说,对于一个键,我们有多个值。有没有人遇到过同样的情况?杀人的原因是什么?在
由于memcached服务器本身并不是为了保持键值对的唯一性而与每个服务器通信,所以这项任务留给客户机库,所以我们试图进一步了解cmemcache和python memcache是如何工作的。在
客户机应该根据它的密钥找出值所在的memcache服务器。如果您使用两个不同的客户机(或同一客户机的两个不同配置),他们可能会使用不同的算法将密钥映射到服务器,从而将同一密钥的值发送到两个不同的服务器。在
您可能想切换到pylibmc或python-libmemcached。当我去年回顾python memcache客户机时,您提到的两个客户机要么已经退休,要么已经破产,要么两者兼而有之。在
哪个是更大的问题:拥有冗余数据,还是为一个查询返回多个结果?在
如果前者是问题所在,那么就有一个棘手的并发问题要解决。在
但是,如果后者是问题所在,为什么不给每个在memcache中存储值的主机一个唯一的标识符,并在任何键之前加上它呢?在
客户机应该根据它的密钥找出值所在的memcache服务器。如果您使用两个不同的客户机(或同一客户机的两个不同配置),他们可能会使用不同的算法将密钥映射到服务器,从而将同一密钥的值发送到两个不同的服务器。在
您可能想切换到pylibmc或python-libmemcached。当我去年回顾python memcache客户机时,您提到的两个客户机要么已经退休,要么已经破产,要么两者兼而有之。在
哪个是更大的问题:拥有冗余数据,还是为一个查询返回多个结果?在
如果前者是问题所在,那么就有一个棘手的并发问题要解决。在
但是,如果后者是问题所在,为什么不给每个在memcache中存储值的主机一个唯一的标识符,并在任何键之前加上它呢?在
相关问题 更多 >
编程相关推荐