客户端不要改动任何代码,无论是从集群中增加还是删减机器。
只要改变集群机器数量,就会有key无法命中的问题,但是不是全部无法命中,因为分布式缓存的分布和定位有一定的算法。
理解这个回答之前,请先理解什么是分散负载和快速定位,再看下一致性哈希算法。
比如我原来有5台memcache服务器,后来5台的内存不够用了,我又加了5台;之后的数据在10台上均匀分布,这样肯定得需要改代码重新配置吧?这样的话,原来5台服务器上的旧数据,通过key还能命中吗?
@moyuguixiong: 配置文件里的机器IP需要修改,但客户端代码看你用哪种memcached客户端了,主流的使用一致性哈希算法的客户端都不需要改动。通常我们都是将分布式缓存是以服务的方式提供给外部调用,只要改动分布式缓存服务里的配置文件即可。
只是第一次没有命中吧,第一次没有命中,它还有别的方式去查找的,只是稍微慢点,只要记录在,它就有办法找到,这个要放心。