Redis集群方案应该怎么作?都有哪些方案?

  1. twemproxy,它相似于一个代理方式,使用方法和普通redis无任何区别,设置好它下属的多个redis实例后,使用时在本须要链接redis的地方改成链接twemproxy,它会以一个代理的身份接收请求并使用一致性hash算法,将请求转接到具体redis,将结果返回twemproxy。使用方式简单(相对redis只需修改链接端口),对旧项目扩展的首选。问题:twemproxy自身单端口实例的压力,使用一致性hash后,对redis节点数量改变时候的计算值的改变数据没法自动移动到新的节点。
  2. codis,目前用的最多的集群方案,基本和twemproxy一致的效果,但它支持在节点数改变状况下,旧节点数据可恢复到新hash节点。
  3. redis cluster3.0自带的集群,特色在于他的分布式算法不是一致性hash,而是hash槽的概念,以及自身支持节点设置从节点。
  4. 在业务代码层实现,起几个毫无关联的redis实例,在代码层,对key进行hash计算,而后去对应的redis实例操做数据。这种方式对hash层代码要求比较高,考虑部分包括,节点失效后的代替算法方案,数据震荡后的自动脚本恢复,实例的监控,等等。