Redis集群

redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点。当遇到单机内存、并发等瓶颈时,可以采用分布式方案要解决问题。

分布式redis数据库

1、分区和槽slot

redis cluster中有一个16384(2^4 * 2^10)长度的槽的概念。通过哈希算法再加上取模运算可以将一个值固定地映射到某个区间,区间由连续的slot组成。

redis cluster采用虚拟槽分区,所有的键根据哈希函数(CRC16[key]&16383)映射到0-16383槽内,共16384个槽位,每个节点维护部分槽及槽所映射的键值数据

哈希函数: Hash()=CRC16[key]&16383 按位与

redis用虚拟槽分区原因:解耦数据与节点关系,节点自身维护槽映射关系,分布式存储

2、集群高可用

a、一个集群里面有M1、M2、M3三个节点,其中节点 M1包含 0 到 5500号哈希槽,节点M2包含5501 到 11000 号哈希槽,节点M3包含11001 到 16384号哈希槽。如果M2宕掉了,就会导致5501 到 11000 号哈希槽不可用,从而使整个集群不可用。

b、一个集群里面有M1-S1、M2-S2、M3-S3六个主从节点,其中节点 M1包含 0 到 5500号哈希槽,节点M2包含5501 到 11000 号哈希槽,节点M3包含11001 到 16384号哈希槽。如果是M2宕掉,集群便会选举S2为新节点继续服务,整个集群还会正常运行。当M2、S2都宕掉了,这时候集群就不可用了。

总结

redis集群至少需要一个备份节点,才能更好的保证集群的高可用。

最新文章

  1. 3D数学的实际应用
  2. 一口气从CSS讲到Servlet再到JSP、Struts2,清蒸JavaWeb的前前后后。
  3. UIScrollViewDelegate
  4. RHEL7文件归档与压缩
  5. Spring中AOP原理,源码学习笔记
  6. win7硬盘安装ubuntu双系统——注意项
  7. spoj 3871. GCD Extreme 欧拉+积性函数
  8. [实变函数]3.1 外测度 (outer measure)
  9. Windows phone 8 学习笔记(1) 触控输入(转)
  10. OWASP 2013年十大Web应用安全漏洞
  11. HTML本地测试成功后上传博客注意事项
  12. autoprefixer安装或者里sass的$mixin处理浏览器前缀
  13. ionic之$ionicHistory
  14. *args和**kwargs
  15. H5取经之路——添加hover实现特定效果
  16. 两张图彻底搞懂MyBatis的Mapper原理!
  17. 理解maven命令package、install、deploy的联系与区别
  18. ES系列二、CentOS7安装ES head6.3.1
  19. 转:用JS获取地址栏参数的方法(超级简单)
  20. sql——sql中的各种连接

热门文章

  1. Spring面试复习整理
  2. The Data Way Vol.1|风口下的开源市场:如何看待开源与商业的关系?
  3. 七牛云的 python sdk 是如何 批量删除资源的
  4. [spring-rabbit]自动配置原理
  5. 【集成学习】:Stacking原理以及Python代码实现
  6. Java和jmeter环境变量的配置来这就对了!
  7. 对epoll机制的学习理解v1
  8. javascript-jquery的基本方法
  9. 【UE4】虚幻引擎技术直播汇总(含中英文直播)
  10. Scrum Meeting 0501