关于redis集群:Redis哨兵集群搭建

41次阅读

共计 1982 个字符,预计需要花费 5 分钟才能阅读完成。

1、筹备工作

哨兵节点的搭建起码须要 3 个节点、在开始之前咱们须要先来搭建一个主从集群(一主两从)具体搭建步骤请查看 https://segmentfault.com/a/1190000039261382

2、配置哨兵

哨兵的默认端口为 26397、默认端口不能和其余机器指定的端口连通,只能在本地拜访。在这里咱们应用端口 5000(能够依据本人的状况定)。

2.1 创立相应的文件夹
# 寄存哨兵配置文件
mkdir /etc/sentinel
#存放数据文件
mkdir -p /var/sentinel/5000
#寄存日志文件
mkdir -p /var/log/snetinel
cd /var/log/snetinel
tuoch /var/log/snetinel/sentinel.log
2.2 批改配置

sentinel.conf 的默认配置在 reids 的装置目录曾经有咱们将它 copy 到 /etc/sentinel 下,做如下批改

cp /usr/local/redis-6.0.6/sentinel/sentinel.conf /ect/sentinel/5000.conf

vim 5000.conf

prot 5000

bind 本机 IP 或者间接正文掉

dir /var/sentinel/5000

sentinel monitor mymaster <masterIP> <masterPort> 2

sentinel down-after-milliseconds mymaster 30000

sentinel failover-timeout mymaster 60000

sentinel parallel-syncs mymaster 1

logfile "/var/log/snetinel/sentinel.log"

daemonize yes 

#如果 redis master 配置拜访口令须要如下配置
sentinel auth-pass mymaster <password>




依照步骤咱们将其它两台哨兵都配置好。

3、启动哨兵

在三台服务器上别离启动哨兵节点

redis-sentinel /etc/sentinal/5000.conf

哨兵状态检测

redis-cli -h < 节点 IP> -p 5000

sentinel master mymaster

SENTINEL slaves mymaster

SENTINEL sentinels mymaster

SENTINEL get-master-addr-by-name mymaster

哨兵启动实现查看日志顺利完成。

⚠️ * 这里有个问题咱们在做容灾的时候,redis 集群配置了口令,如果 master 节点挂了会进行故障转移从新选举 master, 然而当原来的 master 节点重启后会发现连贯不上以后 master, 因为在原 master 配置中没有加
masterauth password master 节点明码的配置,给加上在重启就主动成 slave 节点退出到集群中。*

4、配置解释

sentinel monitor master-group-name hostname port quorum

sentinel down-after-milliseconds mymaster 60000

sentinel failover-timeout mymaster 180000

sentinel parallel-syncs mymaster 1

quorum 的解释如下:

(1)至多多少个哨兵要一致同意,master 过程挂掉了,或者 slave 过程挂掉了,或者要启动一个故障转移操作

(2)quorum 是用来辨认故障的,真正执行故障转移的时候,还是要在哨兵集群执行选举,选举一个哨兵过程进去执行故障转移操作

(3)假如有 5 个哨兵,quorum 设置了 2,那么如果 5 个哨兵中的 2 个都认为 master 挂掉了; 2 个哨兵中的一个就会做一个选举,选举一个哨兵进去,执行故障转移; 如果 5 个哨兵中有 3 个哨兵都是运行的,那么故障转移就会被容许执行

down-after-milliseconds,超过多少毫秒跟一个 redis 实例断了连贯,哨兵就可能认为这个 redis 实例挂了

parallel-syncs,新的 master 别切换之后,同时有多少个 slave 被切换到去连贯新 master,从新做同步,数字越低,破费的工夫越多

假如你的 redis 是 1 个 master,4 个 slave

而后 master 宕机了,4 个 slave 中有 1 个切换成了 master,剩下 3 个 slave 就要挂到新的 master 下面去

这个时候,如果 parallel-syncs 是 1,那么 3 个 slave,一个一个地挂接到新的 master 下面去,1 个挂接完,而且从新的 master sync 完数据之后,再挂接下一个

如果 parallel-syncs 是 3,那么一次性就会把所有 slave 挂接到新的 master 下来

failover-timeout,执行故障转移的 timeout 超时时长

正文完
 0