二十、Redis进阶-实战Redis集群搭建

作者: 温新

分类: 【Redis】

阅读: 2135

时间: 2020-09-06 08:06:45

说明:使用3主3从来实现Redis集群。

主数据库端口为:9000、9001、9002

从数据库端口为:9003、9004、9005

步骤一:创建6个实例配置文件

配置文件名为9000~~9006.conf。此处以9000.conf配置文件为例,其余5个配置文件复制9000.conf并修改端口

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 9000.conf</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">port <span style="box-sizing: border-box;color: rgb(255, 83, 112)">9000</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">daemonize no</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">pidfile <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"/var/run/redis_9000.pid"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">logfile <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"/usr/local/bin/redis_9000.log"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">dir <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"/usr/local/bin/redis_data/9000"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">dbfilename <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"9000_dump.rdb"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)">#集群配置</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 启动集群模式</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">cluster-enabled <span style="box-sizing: border-box;color: rgb(255, 203, 107)">yes</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 集群配置文件</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">cluster-config-file <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"/usr/local/bin/redis_data/nodes_9000.conf"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 超时时间</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">cluster-node-timeout <span style="box-sizing: border-box;color: rgb(255, 83, 112)">15000</span></span>

1)由于是本地单台系统操作,因此省略了绑定地址操作,真是服务器系统中带上ip地址。

2)由于是本地环境,为了学习记录的需要,没有开启后台守护启动,真实服务器环境中,开启守护进程启动。

步骤二:启动配置好的6台服务器

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># pwd</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">/usr/local/bin</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9000.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9001.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9002.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9003.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9004.conf</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-server ./redis_conf/9005.conf </span></span>

启动完成之后查看redis进程

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 ~]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ps -ef | grep redis</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1574</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1323</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:37 pts/0    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9000 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1581</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1414</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:38 pts/1    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9001 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1623</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1591</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:40 pts/2    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9002 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1664</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1633</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:41 pts/3    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9003 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1699</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1674</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:42 pts/4    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9004 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1709</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:42 pts/5    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ./redis-server *:9005 [cluster]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1767</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1743</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">22</span>:42 pts/6    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 <span style="box-sizing: border-box;color: rgb(255, 203, 107)">grep</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">--color</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span>auto redis</span>

可见与常规的不一样了,多了一个cluster集群的标志

步骤三:创建集群

<span style="font-family: "Fira Code", 微软雅黑, "PingFang SC", "Microsoft YaHei", sans-serif; orphans: 4; white-space: pre-wrap; background-color: rgb(246, 246, 246);">注意:Redis6的启动与5之前的版本不一样

1)创建集群

./redis-cli --cluster create  127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 --cluster-replicas 1

2)出现如下内容

<span style="box-sizing: border-box;padding-right: 0.1px">>>> Performing hash slots allocation on <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6</span> nodes...</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Master[0] <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span>> Slots <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">5460</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Master[1] <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span>> Slots <span style="box-sizing: border-box;color: rgb(255, 83, 112)">5461</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">10922</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Master[2] <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span>> Slots <span style="box-sizing: border-box;color: rgb(255, 83, 112)">10923</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">16383</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Adding replica <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9004 to <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Adding replica <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9005 to <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">Adding replica <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003 to <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9002</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">>>> Trying to optimize slaves allocation <span style="box-sizing: border-box;color: rgb(199, 146, 234)">for</span> anti-affinity</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[WARNING] Some slaves are <span style="box-sizing: border-box;color: rgb(199, 146, 234)">in</span> the same host as their master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: cf2c6c30ce292036343d6b0422d0eb009b04baf8 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[0-5460] (5461 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: 591a32f5077a38828ef27073750717678314be7e <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[5461-10922] (5462 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: c16c9e3a6f7c262a15659d21fc01e3ff8ff160db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9002</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[10923-16383] (5461 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: 8ae9e888cd78d05f507a0854ca448bdec9a9c2db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates 591a32f5077a38828ef27073750717678314be7e</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: f155a57e3565835051456b97a3e3625552228e9c <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9004</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates c16c9e3a6f7c262a15659d21fc01e3ff8ff160db</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: 8b0ba372622f2b668402f76fbafe382045992540 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9005</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates cf2c6c30ce292036343d6b0422d0eb009b04baf8</span>

输入:yes 后会等待一下,然后出现如下信息,显示哪些节点加入了

<span style="box-sizing: border-box;padding-right: 0.1px">>>> Performing Cluster Check (using <span style="box-sizing: border-box;color: rgb(255, 203, 107)">node</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: cf2c6c30ce292036343d6b0422d0eb009b04baf8 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[0-5460] (5461 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> additional replica(s)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: 8b0ba372622f2b668402f76fbafe382045992540 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9005</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots: (0 slots) slave</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates cf2c6c30ce292036343d6b0422d0eb009b04baf8</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: f155a57e3565835051456b97a3e3625552228e9c <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9004</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots: (0 slots) slave</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates c16c9e3a6f7c262a15659d21fc01e3ff8ff160db</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: 591a32f5077a38828ef27073750717678314be7e <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[5461-10922] (5462 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> additional replica(s)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">M: c16c9e3a6f7c262a15659d21fc01e3ff8ff160db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9002</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots:[10923-16383] (5461 slots) master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> additional replica(s)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">S: 8ae9e888cd78d05f507a0854ca448bdec9a9c2db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   slots: (0 slots) slave</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">   replicates 591a32f5077a38828ef27073750717678314be7e</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[OK] All nodes agree about slots configuration.</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">>>> Check <span style="box-sizing: border-box;color: rgb(199, 146, 234)">for</span> open slots...</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">>>> Check slots coverage...</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[OK] All <span style="box-sizing: border-box;color: rgb(255, 83, 112)">16384</span> slots covered.</span>

3)查看nodes_9000.conf配置文件信息

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 redis_data]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># cat nodes_9000.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">8b0ba372622f2b668402f76fbafe382045992540 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9005@19005 slave cf2c6c30ce292036343d6b0422d0eb009b04baf8 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405602000</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> connected</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">f155a57e3565835051456b97a3e3625552228e9c <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9004@19004 slave c16c9e3a6f7c262a15659d21fc01e3ff8ff160db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405601892</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span> connected</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">591a32f5077a38828ef27073750717678314be7e <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001@19001 master <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405601000</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> connected <span style="box-sizing: border-box;color: rgb(255, 83, 112)">5461</span><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-10922</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">cf2c6c30ce292036343d6b0422d0eb009b04baf8 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000@19000 myself,master <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405601000</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> connected <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-5460</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">c16c9e3a6f7c262a15659d21fc01e3ff8ff160db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9002@19002 master <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405602910</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span> connected <span style="box-sizing: border-box;color: rgb(255, 83, 112)">10923</span><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-16383</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">8ae9e888cd78d05f507a0854ca448bdec9a9c2db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003@19003 slave 591a32f5077a38828ef27073750717678314be7e <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599405602000</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> connected</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">vars currentEpoch <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6</span> lastVoteEpoch <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span></span>

步骤四:实测写入与获取数据

1)客户端连接9000主服务器

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-cli -c -p 9000</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">set</span> name ziruchu.com</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span>> Redirected to slot [5798] located at <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">OK</span>

可以看到与普通的写入方式不一样了。这里把写入的数据重定向到了5798这个槽中

2)客户端连接9000对应的9003从库

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ./redis-cli -c -p 9003</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">get</span> name</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span>> Redirected to slot [5798] located at <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"ziruchu.com"</span></span>

可以看到,9003从客户端获取数据时,重定向到了5798这个插槽中获取数据

步骤四:故障恢复

从库宕机测试

停止从库9003服务

 [root@192 bin]# ./redis-cli -p 9003 shutdown

停止之后,其他主库会收到信息,查看9001日志文件,如下

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 从库9003丢失了</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1581</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:42:03.894 * FAIL message received from c16c9e3a6f7c262a15659d21fc01e3ff8ff160db about 8ae9e888cd78d05f507a0854ca448bdec9a9c2db</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1581</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:49:37.869 * Clear FAIL state <span style="box-sizing: border-box;color: rgb(199, 146, 234)">for</span> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">node</span> 8ae9e888cd78d05f507a0854ca448bdec9a9c2db: replica is reachable again.</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 重新启动9003从库后收到恢复信息</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1581</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:49:38.843 * Replica <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003 asks <span style="box-sizing: border-box;color: rgb(199, 146, 234)">for</span> synchronization</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1581</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:49:38.843 * Partial resynchronization request from <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9003 accepted. Sending <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1842</span> bytes of backlog starting from offset <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>.</span>

主库宕机测试

停止主库9000

[root@192 bin]# ./redis-cli -p 9000 shutdown

查看从库9005日志

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 主库断开</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:20:02.708 * MASTER <-> REPLICA sync: Finished with success</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:42:03.896 * FAIL message received from c16c9e3a6f7c262a15659d21fc01e3ff8ff160db about 8ae9e888cd78d05f507a0854ca448bdec9a9c2db</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:49:37.865 * Clear FAIL state <span style="box-sizing: border-box;color: rgb(199, 146, 234)">for</span> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">node</span> 8ae9e888cd78d05f507a0854ca448bdec9a9c2db: replica is reachable again.</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:54:42.675 <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Connection with master lost.</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:54:42.675 * Caching the disconnected master state.</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:54:43.081 * Connecting to MASTER <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 升级为主库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:S <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:55:01.771 <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># configEpoch set to 7 after successful failover</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:55:01.771 * Discarding previously cached master state.</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:55:01.771 <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Setting secondary replication ID to 1a48af953d16323d51ee381cdcf4a1ea7abda728, valid up to offset: 2926. New replication ID is 5528571be70e43f118b8bec7024ebf989788a011</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1733</span>:M <span style="box-sizing: border-box;color: rgb(255, 83, 112)">06</span> Sep <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2020</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">23</span>:55:01.771 <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Cluster state changed: ok</span></span>
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9001> cluster nodes</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">....</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">c16c9e3a6f7c262a15659d21fc01e3ff8ff160db <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9002@19002 master <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599408024817</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span> connected <span style="box-sizing: border-box;color: rgb(255, 83, 112)">10923</span><span style="box-sizing: border-box;color: rgb(199, 146, 234)">-16383</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 标记失败</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">cf2c6c30ce292036343d6b0422d0eb009b04baf8 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:9000@19000 master,fail <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599407683597</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1599407681000</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> disconnected</span>

我是小白,期待和优秀的你一起同行!

小白

2020年09月06日

请登录后再评论