Twemproxy增加或剔除Redis节点后对数据有何影响
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本篇文章,Twemproxy增加或剔除Redis节点后对数据的影响是接着”通过Twemproxy代理Redis数据分片方案“这篇文章写的。最好还要懂一致性哈希(ketama)的原理。 上一篇文章中,我们配置了一个twemproxy节点,后面跟着两个Redis节点做的简单测试。下面我们模拟在Redis运行过程中新增一个节点,看一看会丢失Key的比例是多少。至于为什么会丢失Key呢?最简单的理解就是“取模运算”,原先twemproxy是对两个Redis节点对Key做哈希后存储,同样读取数据的时候也是使用同样的算法,同样的节点数做运算,所以可以正确拿到每个Key的值。那么现在新增一个节点后,就成了3个节点对Key做哈希运算了,那么会发生什么情况呢?原先存的Key是对2取模,但是新增一个节点后去取Key时变成了对3取模。那么结果肯定是一大批Key无法找到。当然,上面说的只是很久之前使用的方法,twemproxy使用的是一致性哈希,还是那句话,对于一致性哈希在memcached部分有较为详细的介绍了,有兴趣可以看看。 下面我们就实验看看twemproxy增加或剔除节点后对数据的影响范围比例是多少。twemproxy和redis上一章节就配置好了。 [root@www ~]# ps aux | grep nut root