redis–cluster集群
redis3.0引入分布式存储方案
集群是由多个node节点组成,redis的数据分布在这些节点当中。
在集群当中也分为主节点和从节点。
集群架构图
工作模式
集群模式当中是一 一对应的,主有数据的写入和读取功能,从只有读的功能。
集群模式自带哨兵模式,可以自动实现故障切换,但是在故障切换完成之前,整个集群都将不可用。切换完毕之后,集群会立刻恢复
集群的流程
1、集群自带主从和哨兵
2、每个主从节点之间互相隔离的,可以容忍数据的不完整。
3、哈希槽位决定每个结点的操作,在创建key时,系统已经分配好了指定槽位。
4、MOVED部署报错,只是提醒客户去分配的槽位节点获取数据
集群模式是按照数据分片:
1、数据分区:是集群的核心功能,每隔主都可以对外提供读写的功能,但是数据是一一对应写入主的对应从节点。在集群模式中,可容忍数据的不完整。
2、高可用:集群的主要目的
哈希槽
redis的集群引入了一个哈希槽的概念
redis集群当中16384个哈希槽位。(0-16383)
ge根据集群当中的主从节点上的节点数,分配哈希槽位,每个槽位只负责一部分槽位。
每次读写都涉及到哈希槽位,key通过CRC16校验之后,对16384取余数,余数值决定数据放入到哪个槽位。通过对应槽位所在的节点,然后直接跳转到这个节点。
每一个哈希槽位是连续且16383个槽位都会被分配
实验
查看hash槽位CLUSTER nodes
(1)验证从节点能不能读。不能
(2)验证从节点能不能写。不能
(3)验证分配hash槽位后,不在相应的hash槽位上的主节点能不能写。不能,只能到指定节点上操作
模拟故障
恢复故障
monitor 查看哨兵的ping命令
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。