Redis解析之集群(一)
来源:互联网 发布:微信一键加好友软件源 编辑:程序博客网 时间:2024/04/28 02:27
- Redis-Cluster 架构:
1)所有 Redis 节点彼此互联(PING-PONG 机制),内部使用二进制协议优化传输速度和带宽。
2)集群节点之间定期交换节点信息并且更新,从发送节点的角度看,这些信息包括:集群内有哪些节点,节点IP、PORT、名字、状态(比如OK,PFAIL,FAIL)、角色(master 或者 slave)等。
3)节点定期给其他所有的节点发送Ping,cluster-node-timeout(可配置,毫秒级)时间内没有收到对方的回复,则单方面认为对端节点宕机,将该节点标为PFAIL状态。通过节点之间交换信息,收集到通过超过半数的节点都认为这个节点为PFAIL,则将该节点标记为FAIL,并且将其发送给其他所有节点,其他所有节点收到后立即认为该节点宕机。
4)客户端与 Redis节点直连,不需要中间proxy层;客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
5)Redis-Cluster 内置数据自动分片机制,集群内部将所有的key映射到 [0-16383] 2^14个Slot中,集群中的每个节点负责其中的一部分的Slot的读写。
6)客户端可向任一个集群节点发送命令,当节点收到自己不负责的 Slot 的请求时,会将负责请求 Key 所在Slot 的节点地址返回给客户端,客户端收到后自动将原请求重新发往这个地址。Key 与 Slot 的对应关系由CRC16(key) % 16384 决定。
7)一个 Master 可对应0个或多个 Slave,若没有 Slave,则意味着 Master 宕机后其负责的Slot读写服务不可用;否则,主宕机时某个 Slave 会被提升为 Master,具体哪个从被提升为主,协议类似于Raft。
8)整个集群不可用(cluster_state:fail),需满足以下条件之一:集群任意 Master 挂掉,且该 Master 没有 Slave;超过半数以上 Master 挂掉(无论是否有 Slave)。
当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误。
- Redis解析之集群(一)
- Redis解析之集群(二)
- Redis解析之集群数据结构
- Redis实战之Windows Redis 集群搭建(一)
- redis 集群部署(一)
- redis之字符串命令源码解析(一)
- Redis 3.0集群搭建测试(一)
- Redis 3.0集群搭建测试(一)
- redis笔记总结(一)集群分片
- Redis集群使用总结(一)
- Redis 3.0集群搭建测试(一)
- Redis配置集群一(window)
- Redis集群规范(一)
- Redis集群规范(一)
- redis集群搭建(一)
- redis(9)、redis集群之redis Cluster使用
- redis(9)、redis集群之redis Cluster使用
- Redis 缓存集群 (一)Redis3.0.5 集群搭建
- 关于“.bash_profile”和“.bashrc”区别的总结
- 模板文件不存在,无法解析文档!的终极解决方案
- 从原理上分析解决软键盘的遮挡与隐藏问题, EditText在Toolbar中键盘弹出问题
- 第一类Stirling数和第二类Stirling
- MVC设计模式理解
- Redis解析之集群(一)
- HashMap 和HashTable的区别
- Oracle 11g 导出空表、少表解决办法
- (经典)tcp粘包分析
- Android ramdisk.img system.img userdata.img
- 华为OJ 字符串排序
- Git9--从远程库克隆
- CharacterEncodeFilter相关说明
- FXC : error X3501: 'main': entrypoint not found