一个 Sentinel 集群监控多个 Redis 主从

2024-08-07 12:50:59 浏览数 (2)

  • Sentinel 集群部署
  • 新增一套 Redis 主从 IP角色192.168.1.67redis-01-主192.168.1.167redis-02-从

手动添加指定<master name>节点的监控(需要在每个sentinel节点执行)

代码语言:javascript复制
redis-cli -p 26379

127.0.0.1:26379> sentinel monitor test 192.168.1.67 6379 2

刚才新增的节点,slaves=0,是因为在redis.conf中设置了密码,redis-sentinel.conf中也要设置密码

vim /etc/redis-sentinel.conf

每个sentinel节点都要配置,然后重启每个sentinel服务

取消指定<master name>节点的监控(需要在每个sentinel节点执行)

代码语言:javascript复制
redis-cli -p 26379
127.0.0.1:26379> sentinel remove test

查看指定主节点状态信息

代码语言:javascript复制
127.0.0.1:26379> sentinel master test
 1) "name"
 2) "test"
 3) "ip"
 4) "192.168.1.67"
 5) "port"
 6) "6379"
 7) "runid"
 8) "e41042380e038e28ee3bdb76e0d212eaaabf2491"
 9) "flags"
10) "master"
11) "pending-commands"
12) "0"
13) "last-ping-sent"
14) "0"
15) "last-ok-ping-reply"
16) "489"
17) "last-ping-reply"
18) "489"
19) "down-after-milliseconds"
20) "30000"
21) "info-refresh"
22) "4873"
23) "role-reported"
24) "master"
25) "role-reported-time"
26) "235678"
27) "config-epoch"
28) "0"
29) "num-slaves"
30) "1"
31) "num-other-sentinels"
32) "2"
33) "quorum"
34) "2"
35) "failover-timeout"
36) "180000"
37) "parallel-syncs"
38) "1"

查看指定从节点状态信息

代码语言:javascript复制
127.0.0.1:26379> sentinel slaves test
1)  1) "name"
    2) "192.168.1.167:6379"
    3) "ip"
    4) "192.168.1.167"
    5) "port"
    6) "6379"
    7) "runid"
    8) "ea5e325c52977ebd7d0fba2953d29fc6f2abac68"
    9) "flags"
   10) "slave"
   11) "pending-commands"
   12) "0"
   13) "last-ping-sent"
   14) "0"
   15) "last-ok-ping-reply"
   16) "878"
   17) "last-ping-reply"
   18) "878"
   19) "down-after-milliseconds"
   20) "30000"
   21) "info-refresh"
   22) "6544"
   23) "role-reported"
   24) "slave"
   25) "role-reported-time"
   26) "347755"
   27) "master-link-down-time"
   28) "0"
   29) "master-link-status"
   30) "ok"
   31) "master-host"
   32) "192.168.1.67"
   33) "master-port"
   34) "6379"
   35) "slave-priority"
   36) "100"
   37) "slave-repl-offset"
   38) "325349"

查看指定的sentinel节点信息(不包含当前sentinel节点信息)

代码语言:javascript复制
127.0.0.1:26379> sentinel sentinels test
1)  1) "name"
    2) "192.168.1.94:26379"
    3) "ip"
    4) "192.168.1.94"
    5) "port"
    6) "26379"
    7) "runid"
    8) "38969a5853bf3d1e6edf730c171af0590329c9ba"
    9) "flags"
   10) "sentinel"
   11) "pending-commands"
   12) "0"
   13) "last-ping-sent"
   14) "0"
   15) "last-ok-ping-reply"
   16) "321"
   17) "last-ping-reply"
   18) "321"
   19) "down-after-milliseconds"
   20) "30000"
   21) "last-hello-message"
   22) "262"
   23) "voted-leader"
   24) "?"
   25) "voted-leader-epoch"
   26) "0"
2)  1) "name"
    2) "192.168.1.58:26379"
    3) "ip"
    4) "192.168.1.58"
    5) "port"
    6) "26379"
    7) "runid"
    8) "86db07d703d1d71657dc826e90afc146e1f5345e"
    9) "flags"
   10) "sentinel"
   11) "pending-commands"
   12) "0"
   13) "last-ping-sent"
   14) "0"
   15) "last-ok-ping-reply"
   16) "321"
   17) "last-ping-reply"
   18) "321"
   19) "down-after-milliseconds"
   20) "30000"
   21) "last-hello-message"
   22) "470"
   23) "voted-leader"
   24) "?"
   25) "voted-leader-epoch"
   26) "0"

查看指定主节点的IP和端口

代码语言:javascript复制
127.0.0.1:26379> sentinel get-master-addr-by-name test
1) "192.168.1.67"
2) "6379"

重置主节点的配置,包含清除主节点的相关状态(例如故障转移),重新发现从节点和Sentinel节点

代码语言:javascript复制
127.0.0.1:26379> sentinel reset test

对指定<master name>主节点强制故障转移

0 人点赞