在淘宝上的毕设网站代做,网站建设绩效考核方案,帮网站做关键词排名优化,网站建设公司排redis版本为7#xff0c;搭建的架构为1主2从3哨兵的架构。本文是对搭建的过程做一个回忆#xff0c;过程可能遗漏了某些步骤#xff0c;见谅。
首先#xff0c;需要有一个已经安装了的redis。我们从redis源码目录中#xff0c;找到一个redis.conf文件#xff0c;这个文件…redis版本为7搭建的架构为1主2从3哨兵的架构。本文是对搭建的过程做一个回忆过程可能遗漏了某些步骤见谅。
首先需要有一个已经安装了的redis。我们从redis源码目录中找到一个redis.conf文件这个文件是redis作为server的配置文件模板mkdir一个新的目录将这个配置文件cp到新的目录中并对cv的新配置文件进行改动。
此外还有一个sentinel.conf文件这个是作为sentinel的配置文件也可以复制过去。如果想要搭建一个demo最小化配置即可只需要简单几个配置放在一个新文件中不需要复制这样的一个文件。 一修改server配置文件
搭建的是demo所以日志最好在前台输出针对性的对配置文件做出修改如下
对作为server的配置文件需要准备3份1主2从port不同其他的都和下面的配置一致即可。
#redis前台运行
daemonize no
#空字符串表示在前台输出
logfile
#指定端口
port 6379
二修改sentinel配置文件
sentinel的最小化配置文件如下
#指定本台sentinel的端口为26379
port 26379
#指定的本机上的端口为6379的redis为mastermaster name叫mymaster需要2台sentinel及以上才能选举出新的master本次共3台sentinel为了防止脑裂需要2台sentinel的选举结果一致
sentinel monitor mymaster ::1 6379 2
#sentinel向其他sentinel广播自身ip时用的ip。如果是在一台机器上部署多个redis实例这个配置是必写的。
sentinel announce-ip 127.0.0.1
最后准备出如下的配置文件
三启动伪集群
redis默认开机启动的话需要先关闭redis进入客户端后关闭server
redis-cli -p 6379
127.0.0.1:6379 shutdown
或者
redis-cli -p 6379 shutdown查看redis进程
ps -fe | grep redis确认redis关闭完后启动master
#redis-server后面跟配置文件的路径
redis-server ~/test/6379.conf启动replica
#可以通过--replica ip port在启动的时候就作为replica
#也可以在客户端中通过replicaof命令转为指定ip port的redis的replica格式和上面一样replica可以通过replicaof no one重新作为独立的server。
redis-server ~/test/6380.conf --replicaof localhost 6379启动sentinel
#--sentinel表示这台redsi作为哨兵启动
#也可以通过redis-sentinel取消最后的--sentinel启动
redis-server ~/test/26379.conf --sentinel四测试哨兵
查看master或replica日志看到master和replica的sync成功说明主从数据同步成功。 依次启动哨兵下图中为第一台哨兵可以看到它监测到了2台replica和2台其他哨兵的启动 此时关闭master6379哨兵会重新选举master选举结束后不指定replicaof重新启动63796379变为新的master6380的replica。 #epoch1表示开启了一个新的纪元1也就是说选举出来一个新的主人master。不得不说redis作者有点恶趣味的。
9667:X 31 Jul 2023 04:38:44.108 # new-epoch 1
9667:X 31 Jul 2023 04:38:44.108 # try-failover master mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:44.128 * Sentinel new configuration saved on disk
9667:X 31 Jul 2023 04:38:44.128 # vote-for-leader 2588ffd5f5be5c93c66544b82b3d39dca44de508 1
9667:X 31 Jul 2023 04:38:44.130 # a87c3d3f480da6b1edc0c99f1187a20a1e332bfa voted for a87c3d3f480da6b1edc0c99f1187a20a1e332bfa 1
9667:X 31 Jul 2023 04:38:44.159 # 166b0a6fa12f54717be667b4eccd59ec5ff7015b voted for 2588ffd5f5be5c93c66544b82b3d39dca44de508 1
#监测到了master6379的失联
9667:X 31 Jul 2023 04:38:44.221 # elected-leader master mymaster 127.0.0.1 6379
#6379是失联状态
9667:X 31 Jul 2023 04:38:44.221 # failover-state-select-slave master mymaster 127.0.0.1 6379
#选举6380准备代替6379
9667:X 31 Jul 2023 04:38:44.321 # selected-slave slave [::1]:6380 ::1 6380 mymaster 127.0.0.1 6379
#后面sentinel更新了自己的配置文件并发送给了其他sentinel等待6379失联的最终确定。
9667:X 31 Jul 2023 04:38:44.321 * failover-state-send-slaveof-noone slave [::1]:6380 ::1 6380 mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:44.374 * failover-state-wait-promotion slave [::1]:6380 ::1 6380 mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:45.197 * Sentinel new configuration saved on disk
9667:X 31 Jul 2023 04:38:45.197 # promoted-slave slave [::1]:6380 ::1 6380 mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:45.197 # failover-state-reconf-slaves master mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:45.257 * slave-reconf-sent slave [::1]:6381 ::1 6381 mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:46.223 * slave-reconf-inprog slave [::1]:6381 ::1 6381 mymaster 127.0.0.1 6379
9667:X 31 Jul 2023 04:38:46.223 * slave-reconf-done slave [::1]:6381 ::1 6381 mymaster 127.0.0.1 6379
#最终确认6379失联了
9667:X 31 Jul 2023 04:38:46.294 # -odown master mymaster 127.0.0.1 6379
#失联状态结束后面它就是down状态了
9667:X 31 Jul 2023 04:38:46.294 # failover-end master mymaster 127.0.0.1 6379
#转换新的master6380
9667:X 31 Jul 2023 04:38:46.294 # switch-master mymaster 127.0.0.1 6379 ::1 6380
#通知2个replica6380 6381进行对应的转换6380变为master6381变为6380的replica
9667:X 31 Jul 2023 04:38:46.294 * slave slave [::1]:6381 ::1 6381 mymaster ::1 6380
9667:X 31 Jul 2023 04:38:46.294 * slave slave 127.0.0.1:6379 127.0.0.1 6379 mymaster ::1 6380
9667:X 31 Jul 2023 04:38:46.317 * Sentinel new configuration saved on disk
#6379也要变为6380的replica只不过6379现在是down的状态重新启动6379不需要--replica指定6379就会变成6380的replica
9667:X 31 Jul 2023 04:38:49.334 # sdown slave 127.0.0.1:6379 127.0.0.1 6379 mymaster ::1 6380
9667:X 31 Jul 2023 04:46:10.375 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 mymaster ::1 6380
#重新启动6379不需要指定--replicaof直接变为6380的replica
9667:X 31 Jul 2023 04:46:29.370 * slave slave [::1]:6379 ::1 6379 mymaster ::1 6380
9667:X 31 Jul 2023 04:46:29.371 * Sentinel new configuration saved on disk 五注意事项
1是如果是同一台linux装了这些redis前面提到的sentinel announced-ip配置项一定要配置不然sentinel会争抢ip。
2如果在启动sentinel的过程中出现了问题如果想恢复并重新启动1主2从3哨兵那么仅仅是通过命令启动或者将新选举出来的master改为我们想要的port是不够的。 因为sentinel会自动对sentinel和server replica的配置文件进行追加追加内容主要是master replica 其他sentinel的ip端口唯一id还有状态等。
如果想恢复一定要将包括master replica sentinel在内的6个配置文件中包括新选举的master的ip和sentinel自动追加的内容全部修改或删除重新依次启动才能完成恢复。