设置假设我有2个memcached服务器,2个Web服务器连接到这两个memcached服务器。我正在使用spymemcached客户端。
假设:
1)web1向memcached插入一个键“abc”。基于它存储在memcached1中的某种机制。
2)当web2尝试获取密钥“abc”时,它如何知道它将转到memcached1来获取密钥?
我是否需要在spymemcached客户端进行任何特殊设置,以确保始终确定存储密钥的memcached服务器?
答案 0 :(得分:3)
您不需要任何特殊逻辑来执行此操作。 Memcached是一个分布式缓存,可以通过散列密钥来处理不同的服务器。只要列出memcached群集中的所有服务器,就没有问题。
我还想注意,您可以更改的一个参数是客户端使用的哈希算法。这可以在用于构建连接的任何ConnectionFactory类中完成。
答案 1 :(得分:1)
通常,相同的密钥永远不会存储在两个不同的memcached服务器上。这是因为memcached客户端将使用某种算法来找出应该存储密钥的服务器,并在具有给定id的查找中再次识别相同的服务器。
使用的典型算法可能是
server_id = key.hashCode()%N,其中N是由数字标识的memcached服务器的数量 从0到N-1