整理redis集群方案的时候,通过一些资料的查找,找到了三种途径


  • 使用程序中间件在多个redis集群服务上做一层,通过程序来对key值进行唯一性的计算,这样做对程序中间件的代码要求很高,GitHub上有个Ndriver,没有测试,不知道好不好用。
  • 使用fackbook的twemproxy,一个比较传统的方案,这个是redis在提出官方解决方案之前的一种方案,性能和redis差不多,对key一致性的算法也有很多,是个不错的解决方案,但是有一定的缺点:1.我目前暂时没有发现他是如何处理挂掉的集群节点的,因为如果一条命令被处理后发送给了挂掉的集群节点,会返回失败,而不是在去找其他好用的节点。2.它也是单线程,所以做好集群后redis的压力下来了,但是它自己的压力还是会有的,所以就看是它处理的速度和redis本身的速度做一个比较,看看对不同业务去选择方案吧。3.大部分redis的命令它都支持,但是还是有部分是不支持的,所以不能满足所有要求。
  • 使用redis的官方解决方案,目前比较不错的一个解决方案,它把一致性hash改成了hash槽的概念。并且确实大大提升了效率,官方也提供了建立集群的方案,很方便。在与docker集成的时候还是有部分东西需要配置的,比如集群配置会保存在一个叫做nodes.conf的文件里面,与docker做配置的时候需要做映射,这样一个集群挂了重启才会读取原来的配置。

猜你喜欢

转载自blog.csdn.net/u011877409/article/details/80380775
今日推荐