Redis哨兵机制

Redis Sentinel物理结构图

角色 IP Port 别名
master 127.0.01 6379 主节点
slave-1 127.0.01 6380 slave-1节点
slave-2 127.0.01 6381 slave-2节点
sentinel-1 127.0.01 26379 sentinel-1节点
sentinel-2 127.0.01 26380 sentinel-2节点
sentinel-3 127.0.01 26381 sentinel-3节点

1. 启动主节点

配置:

port 6379

daemonize yes

logfile “6379.log”

dbfilename “dump-6379.rdb”

dir “/opt/soft/redis/data/”

启动主节点,并用一下命令验证主节点是否启动成功:

redis-cli -h 127.0.0.1 -p 6379 ping

此时的拓扑结构图如下:

2. 启动两个从节点

配置:

和主节点一样,只是添加了一条:slaveof 127.0.0.1 6379

启动两个从节点,并验证是否启动成功。

3. 确认主从关系

主节点视角,使用info命令查看

从节点视角,使用info命令查看

此时的拓扑结构图如下:

4. 配置sentinel节点

配置:

port 26379

daemonize yes

dir /opt/soft/redis/data

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

  1). Sentinel节点的默认端口是26379。

  2). sentinel monitor mymaster 127.0.0.1 6379 2配置代表sentinel-1节点需要监控127.0.0.1:6379这个主节点,2代表判断主节点失败至少需要2个sentinel节点同意,mymaster是主节点的别名。

  3). 此处有一个坑需要注意,在配置monitor监控的时候,不要使用127.0.0.1这个IP地址,因为在使用其他语言客户端连接的时候,是连接的sentinel,然后获取redis服务的连接,如果配置127.0.0.1的话,是获取不到redis服务的真实地址的,所以这里尽量配置为redis节点的真实地址。

5. 启动sentinel节点

按照上述方法配置其余两个sentinel节点,然后分别启动

redis-sentinel redis-sentinel-26379.conf

6. 确认

redis-cli -h 127.0.0.1 -p 26379 info sentinel

7. 最后的拓扑结构图如下:

8. 验证

posted @ 2018-04-30 20:21  我滴个小张张  阅读(258)  评论(0编辑  收藏  举报