简单搭建redis哨兵集群


简单搭建redis哨兵集群

配置参数说明

sentinel monitor mymaster 10.0.0.4 6379 

指定对一个 master 的监控,给监控的 master 指定的一个名称。

sentinel down-after-milliseconds mymaster 60000

哨兵与 master 断开连接超过多少毫秒,就判定 master 主观宕机。

sentinel failover-timeout mymaster 180000

执行故障转移的超时时间。假设一个哨兵进行故障转移操作失败,在等待 failover-timeout 时间后,其他的哨兵会重新选举出一个进行故障转移操作。

sentinel parallel-syncs mymaster 1

主从切换后,同时有多少个 slave 被切换到去连接新 master,重新做同步。数字越小,花费的时间越多。

配置部署哨兵集群

  1. 创建 /etc/sentinel 文件夹,从 redis 安装目录下拷贝并重命名 sentinel.conf 文件为 5000.conf 到
    /etc/sentinel 目录下;
  2. 创建 /var/sentinel/5000 文件夹;
  3. 修改 5000.conf 配置文件部分内容,在 10.0.0.4,10.0.0.5,10.0.0.6,10.0.0.7 上执行如下所示操作,其中仅有 bind 需要修改为本机 IP;
port 5000
bind 10.0.0.4
dir /var/sentinel/5000
sentinel monitor mymaster 10.0.0.4 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
  1. 执行以下命令启动哨兵进程
redis-sentinel /etc/sentinal/5000.conf

在这里插入图片描述

检查哨兵状态

执行以下命令,查看哨兵状态:

redis-cli -h 10.0.0.4 -p 5000
[root@mq1 ~]# redis-cli -h 10.0.0.4 -p 5000
10.0.0.4:5000> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "10.0.0.4"
 5) "port"
 6) "6379"
 7) "runid"
 8) "ec57362a7f568a1cbc48acf30c4130f7be0e4fb7"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "652"
19) "last-ping-reply"
20) "652"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "9809"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "411586"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "3"
33) "num-other-sentinels"
34) "3"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"
10.0.0.4:5000> sentinel slaves mymaster
1)  1) "name"
    2) "10.0.0.6:6379"
    3) "ip"
    4) "10.0.0.6"
    5) "port"
    6) "6379"
    7) "runid"
    8) "7e698379fefb12b303b5be1642ae0a6d7d3c7e1c"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "14"
   19) "last-ping-reply"
   20) "14"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "902"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "432844"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "10.0.0.4"
   35) "master-port"
   36) "6379"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "128023"
2)  1) "name"
    2) "10.0.0.7:6379"
    3) "ip"
    4) "10.0.0.7"
    5) "port"
    6) "6379"
    7) "runid"
    8) "53c073e6eb00f3b3ee96ddf4f7ff5fd8e4d178d0"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "14"
   19) "last-ping-reply"
   20) "14"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "685"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "432840"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "10.0.0.4"
   35) "master-port"
   36) "6379"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "128023"
3)  1) "name"
    2) "10.0.0.5:6379"
    3) "ip"
    4) "10.0.0.5"
    5) "port"
    6) "6379"
    7) "runid"
    8) "0060685b3f9ec71e5f5b166b19205f7b98ef5686"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "14"
   19) "last-ping-reply"
   20) "14"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "902"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "432846"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "10.0.0.4"
   35) "master-port"
   36) "6379"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "128023"
10.0.0.4:5000> sentinel sentinels mymaster
1)  1) "name"
    2) "391453fb77847a564885f852135f8a3629788912"
    3) "ip"
    4) "10.0.0.6"
    5) "port"
    6) "5000"
    7) "runid"
    8) "391453fb77847a564885f852135f8a3629788912"
    9) "flags"
   10) "sentinel"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "338"
   19) "last-ping-reply"
   20) "338"
   21) "down-after-milliseconds"
   22) "30000"
   23) "last-hello-message"
   24) "95"
   25) "voted-leader"
   26) "?"
   27) "voted-leader-epoch"
   28) "0"
2)  1) "name"
    2) "4448abe1ada002b7908ecb26a951391e2fb67808"
    3) "ip"
    4) "10.0.0.5"
    5) "port"
    6) "5000"
    7) "runid"
    8) "4448abe1ada002b7908ecb26a951391e2fb67808"
    9) "flags"
   10) "sentinel"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "338"
   19) "last-ping-reply"
   20) "338"
   21) "down-after-milliseconds"
   22) "30000"
   23) "last-hello-message"
   24) "270"
   25) "voted-leader"
   26) "?"
   27) "voted-leader-epoch"
   28) "0"
3)  1) "name"
    2) "3007a4c9a6ab09bfecf3684985da8aa032a5dd46"
    3) "ip"
    4) "10.0.0.7"
    5) "port"
    6) "5000"
    7) "runid"
    8) "3007a4c9a6ab09bfecf3684985da8aa032a5dd46"
    9) "flags"
   10) "sentinel"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "338"
   19) "last-ping-reply"
   20) "338"
   21) "down-after-milliseconds"
   22) "30000"
   23) "last-hello-message"
   24) "323"
   25) "voted-leader"
   26) "?"
   27) "voted-leader-epoch"
   28) "0"
10.0.0.4:5000> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "10.0.0.4"
 5) "port"
 6) "6379"
 7) "runid"
 8) "ec57362a7f568a1cbc48acf30c4130f7be0e4fb7"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "394"
19) "last-ping-reply"
20) "394"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "3866"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "94293"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "3"
33) "num-other-sentinels"
34) "3"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"

其中,sentinel master mymaster 是查看 master 哨兵状态,sentinel slaves mymaster 是查看 slave 哨兵状态,sentinel sentinels mymaster是查看哨兵集群状态。

其他配置

  • 配置哨兵后台启动:需修改配置文件中的 daemonize 为 yes,然后重启哨兵。
  • 设置哨兵开机自启:修改启动脚本 redis_6379,修改内容如下图所示:
    在这里插入图片描述

踩坑记录

  1. 哨兵启动出现 +sdown master mymaster 10.0.0.4
    因为 redis 设置了节点认证,所以此时在哨兵里面也是需要配置,即在哨兵配置文件中添加
    sentinel auth-pass mymaster 【redis 认证密码】。
  2. ‘sentinel auth-pass mymaster redis-pass’ No such master with specified name
    因为 sentinel auth-pass mymaster redis-pass 要配置在 sentinel monitor mymaster 10.0.0.4 6379 2 后,否则哨兵启动报如上错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久违の欢喜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值