我正在浏览文档,如果指定了多个服务器,我对memcache如何进行内部负载平衡感到有些困惑.例如:
import memcache mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',]) mc.set("some_key", "Some value") print mc.get("some_key")
密钥"some_key"的设置和检索是否总是命中同一个服务器?备用密钥的设置和检索(例如"some_key_2"或"some_key_3")是否会自动分配到服务器池中?如果添加或删除服务器会发生什么?
同样,get_multi会发生什么:
import memcache mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',]) mc.set_multi({42: 'adams', 46 : 'and of me'}) print mc.get_multi([46, 42])
这会自动设置并从正确的服务器检索每个密钥吗?是否有必要编写包装类?
谢谢.
memcached根据密钥的哈希在服务器上放置密钥.只要您的服务器设置没有更改,那么给定的密钥将始终落在给定的服务器上.