redis--集群

Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能;
1、Redis集群通常是由多个节点组成的,在刚开始的时候,每个节点都是相互独立的,它们都处于自己独立的集群中;连接各个节点的工作由cluster meet命令来完成;节点与节点进行握手,加入到对方所在的集群当中;
2、cluster meet命令的实现
这里写图片描述
3、槽指派
Redis集群是通过分片的方式来保存数据库中的键值对:集群的整个数据库被分为16384个槽,数据库中的每个键都属于这16384个槽的其中的一个,集群中的每个节点可以处理0个或者16384个槽;当16384个槽指派完毕,才能认为这个集群处于上线的状态;
节点之间是需要相互传自己所检测的槽信息。
4、moved错误
如果键所在的槽并没有指派给当前节点,那么节点会向客户端返回一个moved错误,并自动重定向到这个键所在的槽的服务器;
5、ask错误
在进行重新分片期间,源节点向目标节点迁移一个槽的过程中,可能会出现一种情况:属于被迁移槽的一部分键值对保存在源节点里面,而另一部分键值对则保存在目标节点里面。如果源节点没能在自己的数据库里面找到指定的键,那么这个键有可能已经被迁移到了目标节点,源节点将向客户端返回一个ask错误,指引客户端转向正在导入槽的目标节点,并再次发送之前想要执行的命令;
6、复制与故障转移
这里写图片描述

引用《redis设计与实现》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值