Redis的集群原理
一、redis-cluster架构图
- 使用如下图的命令连接到别的Redis服务器,并通过命令ping检测Redis服务器是否处于健康状态
- 下图所示的圆圈表示一个Redis服务器,每个结点的数据都是不一样的,只要有一个结点挂了,那么那么Redis集群就挂了,考虑到高可用,每个节点都需要添加备份机
redis-cluster投票:容错
投票机制,用于指导那个结点挂了
规则:要判断一个结点是不是挂了,那么需要集群中半数的结点认为他挂了,那么他就挂了
分析:下图的红色的结点是挂了的结点,黄色的结点发现了红色的结点挂了,那么他会想其他的结点广播,让其他的结点试试红色的结点是否挂了,黄色的箭头代表测试红色的结点没有反应,图中一共有五个结点,三个认为红色的结点挂了,那么则认为红色的结点挂了,我们的集群就不完整了,就会看一下是否有备份结点,如果没有备份结点,那么整个Redis集群就挂了
架构细节:
- 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽
- 节点的fail是通过集群中超过半数的节点检测失效时才生效(redis-cluster投票:容错)
- 客户端与redis节点直连,不需要中间proxy(代理)层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
- redis-cluster把所有的物理节点映射到[0-16383]slot(槽,作用:均匀分布。不管服务器有多少,槽只有16384个)上,cluster 负责维护
- Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点
- 步骤:0-5000、501-10000、10001-16383分到三个不同的服务器上,通过crc16得到每一个key的一结果,这个结果对16384求余,得到不同的哈希槽,然后根据哈希槽分配到不同的服务器上
Redis的集群原理相关推荐
- Redis cluster集群原理与配置
Redis cluster集群原理与配置 一.cluster集群原理 1.数据迁移 过程 2.复制以及故障转移 故障检测 故障转移 二.配置cluster集群 1.创建文件夹 2.编辑 7001.co ...
- Redis——cluster集群原理
摘要 在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态:如果 master 节点异常,则会做主从切换,将一台 slave 作为 mas ...
- Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理
概要 我们知道「主从复制是高可用的基石」,从库宕机依然可以将请求发送给主库或者其他从库,但是 Master 宕机,只能响应读操作,写请求无法再执行. 所以主从复制架构面临一个严峻问题,主库挂了,无法执 ...
- Redis学习(二)之 Redis Cluster集群
redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并 ...
- 5-Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理(码哥)
概要 我们知道「主从复制是高可用的基石」,从库宕机依然可以将请求发送给主库或者其他从库,但是 Master 宕机,只能响应读操作,写请求无法再执行. 所以主从复制架构面临一个严峻问题,主库挂了,无法执 ...
- python连接redis集群如何释放内存_python 连接 redis cluster 集群
一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...
- 基于Redis6.2.6版本部署Redis Cluster集群
基于Redis6.2.6版本部署Redis Cluster集群 文章目录 基于Redis6.2.6版本部署Redis Cluster集群 1.Redis6.2.6简介以及环境规划 2.二进制安装Red ...
- java集群解析文件_干货:一文详解Redis集群原理核心内容
集群原理 一个系统建立集群主要需要解决两个问题:数据同步问题和集群容错问题. Naive方案 一个简单粗暴的方案是部署多台一模一样的Redis服务,再用负载均衡来分摊压力以及监控服务状态.这种方案的优 ...
- Redis cluster集群扩容缩容原理
1. Redis Cluster集群扩容 1.1 扩容原理 redis cluster可以实现对节点的灵活上下线控制 3个主节点分别维护自己负责的槽和对应的数据,如果希望加入一个节点实现扩容,就需要把 ...
- Redis Cluster 集群模式原理和动态扩容
Redis Cluster原理 详细参考 Redis cluster集群模式的原理, 在这里补充下要点 16384个slot, 平均分布在各个master, key-value 对存储在slot中; ...
最新文章
- js 打开窗口window.open
- 异常检测算法:Isolation Forest
- IDA Pro IDA 数据库文件
- 电子邮件的故事:令人吃惊的预测
- 云炬随笔20160914
- 类装载器ClassLoader
- java的虚拟机不支持在鲲鹏上_屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!...
- php mysql 全文检索_MySQL中文全文检索
- XMPP之openfire无法启动
- spark on yarn webUI logs不能查看
- 数据结构排序法之堆排序he归并排序
- 《转》不要过打折的生活,当你发现这些你有了,说明你开始成熟了
- sklearn中lstm_分别用sklearn和tensorflow做房价预测
- MATLAB 求一个矩阵的最大值极其所在位置
- 怎么把python写的程序打包成软件_python怎么把软件打包出来
- CSS——网易云音乐之登录页面的实现
- SpringMVC Web实现文件上传下载功能实例解析
- MapGIS应用操作题
- 用户可以更方便高效的使用计算机,有了操作系统,用户可以更方便高效的使用计算机。...
- 事务的4个特性——ACID(原子性、一致性、隔离性和持久性)、更新丢失问题...