DOCKER

docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例

在上一篇,学会了3主3从的Redis集群搭建。那么接下来,我们就来学习Redis集群主从容错切换迁移案例本次案例从模拟两个场景1:数据读写存储a:一个新key数据来了,是否会按照预设的进入槽中?集群是否生效2:容错切换迁移a:如果master6381挂了。那么对应的从6384是否会补位?下面就开始实操。数据读写存储操作案例步骤:1:启动6台机器构成的集群并通过exec进入2:对6381新增两个ke

在上一篇,学会了3主3从的Redis集群搭建。那么接下来,我们就来学习Redis集群主从容错切换迁移案例

本次案例从模拟两个场景

1:数据读写存储

a:一个新key数据来了,是否会按照预设的进入槽中?集群是否生效

2:容错切换迁移

a:如果master 6381挂了。那么对应的从6384是否会补位?

下面就开始实操。

插播一条


下面这个公众号是凯哥开发的,福利号:外卖、买菜、电商领Q的

67db93da54df097b6017fa8666079592.png

怎么领券?

f02b1847f3c94a44c2d6f0bca121443d.png

数据读写存储操作案例

步骤:

1:启动6台机器构成的集群并通过exec进入

e4a451ce220af6a0f0a50e7092428504.png

2:对6381新增两个key

查看当前6381机器上是否存在缓存key:

5e807a99557ff5aa3b79e618993a727b.png

发现没有。


好,那么我们就来set k1 v1.3c1ef8b332c1978d9047c8ce97a7cf62.png

发现错误了。错误信息:

(error) MOVED 12706 192.168.50.128:6383

这不对啊。set k v是最简单的命令。这个命令都不支持。那么要集群有什么用?

我们来分析原因:

我们现在使用的是集群的,是有hash槽的。如下图:

8c2a97a2b29272e35b4b4d27784b6a8e.png

我们可以看到,master 1 只能管理5461个槽。master2只能管理5462个。master3也是管理5461个槽。

通过之前的学习,我们也知道,集群的时候,是通过把key通过hash值,算出的hash值找到对应具体需要存放在哪个master上的。

通过这些理论知识,我们知道,可能我们set的k1这个key经过hash之后,不在当前master1所管理的0~5460共5461个hash槽中。所以会报错。

那根据这些,我们试试存放其他的呢?

9092ac70c9ff100a8392e81eb0582f81.png

我们可以看到,set k2和k3的时候可以的。但是k1和k4是不行的。

我们看看k1

原创不易,完成人机校验,阅读全文

相关推荐