1、redis cluster介绍

redis cluster

(1)自动将数据进行分片,每个master上放一部分数据
(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的

在redis cluster架构下,每个redis要放开两个端口号,比如一个是6379,另外一个就是加10000的端口号,比如16379

16379端口号是用来进行节点间通信的,也就是cluster bus的东西,集群总线。cluster bus的通信,用来进行故障检测,配置更新,故障转移授权

cluster bus用了另外一种二进制的协议,主要用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间

2、最老土的hash算法和弊端(大量缓存重建)

3、一致性hash算法(自动缓存迁移)+虚拟节点(自动负载均衡)

4、redis cluster的hash slot算法

redis cluster有固定的16384个hash slot,对每个key计算CRC16值,然后对16384取模,可以获取key对应的hash slot

redis cluster中每个master都会持有部分slot,比如有3个master,那么可能每个master持有5000多个hash slot

hash slot让node的增加和移除很简单,增加一个master,就将其他master的hash slot移动部分过去,减少一个master,就将它的hash slot移动到其他master上去

移动hash slot的成本是非常低的

客户端的api,可以对指定的数据,让他们走同一个hash slot,通过hash tag来实现

最新文章

  1. Leetcode Copy List with Random Pointer
  2. ActiveReports中自定义Winforms的Viewer 工具栏
  3. Android和iOS常用命令学习(真机)
  4. Linux入门学习,开启端口号
  5. 跟着百度学PHP[2]-foreach条件嵌套
  6. 50136142WXY的百度地图
  7. python 数据运算
  8. SSKeyChains的使用小节
  9. java 实现多种排序
  10. Tree Restoring
  11. [C#]使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)
  12. 一个页面多个HTTP请求 页面卡顿!
  13. 视频当道的时代,这些珍藏的优质 Python 播客值得推荐
  14. 读书笔记一【哈希——MD5】
  15. 小记Java时间工具类
  16. 机器学习基石笔记:06 Theory of Generalization
  17. iOS 图文混排
  18. 写自动更新程序出现"远程服务器返回错误: (404) 未找到"
  19. JS生成指定范围内的随机数(支持随机小数)
  20. 【玩转Golang】reflect.DeepEqual

热门文章

  1. MaxCompute问答整理之9月
  2. Codeforces703D-Mishka and Interesting sum-离线树状数组
  3. python 使用abc实现接口类/虚类(2.2)
  4. VScode中写vue代码 Ctrl+/添加注释失效
  5. 关于group by的用法
  6. SpringBoot通过maven打包成jar,设定主清单属性。
  7. 6. 第一个jmeter脚本开发-测试百度首页
  8. 如何查看jdk版本和路径
  9. java.sql.SQLException: validateConnection false
  10. css布局-瀑布流的实现