Docker创建Redis主从复制+哨兵集群,哨兵不起作用问题

1.拉取redis镜像:

docker pull redis

2.拉取镜像后,在三台服务器上创建文件redis.conf,其中主机内容如下:

port 6379
logfile "redis.log"
dir /data
#是否持久化
appendonly yes

3.另两台的redis.conf内容如下:

port 6379
logfile "redis.log"
dir /data
appendonly yes
replicaof 192.168.2.11

4.在三台服务器上创建文件sentinel.conf:

port 26379
dir /data
logfile "sentinel.log"
daemonize yes
sentinel monitor redismaster 192.168.2.11 6379 2

5.在三台服务器上执行:

docker run -d -p 6379:6379 -v /home/data/redis.conf:/data/redis.conf --name redis1 redis

6.交互模式进入redis1容器:

docker exec -it redis1 /bin/bash

7.打开redis客户端:

redis-cli

8.查看redis服务器信息:

info replication

9.得到如下信息:

# Replication
role:master
connected_slaves:0
master_replid:30172b10011fa14fbea5ccc271622e956d3af32d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:56
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:56

10.通过以上信息得知,redis.conf并没有起作用,而是使用的默认配置文件,解决方法,redis-cli 打开客户端后:

replicaof 192.168.2.11

11.再次查看redis服务器信息,从机role已变为slave。

12.在redis1容器内启动哨兵,首先复制sentinel.conf到容器内:

docker cp /home/data/sentinel.conf redis1:/data/sentinel.conf

13.进入交互模式后,启动哨兵:

redis-sentinel sentinel.conf

14.打开哨兵客户端:

redis-cli -h 127.0.0.1 -p 26379

15.退出哨兵客户端:

exit

16.查看哨兵日志:

cat sentinel.log

17.关闭主机redis1容器,过几秒后查看,有一台从机完成从到主角色提升

遇到的问题及解决方案:

1.redis.conf不起作用,可以在创建容器时添加启动命令redis-server及启动参数redis.conf:

docker run -d -p 6379:6379 -v /home/data/redis.conf:/data/redis.conf --name redis1 redis redis-server redis.conf

 这样在运行redis服务时,就会使用指定的redis.conf配置,不然配置无效,会使用默认配置。

2.可以创建单独的哨兵容器,也可以添加启动命令redis-sentinel及启动参数sentinel.conf,指定服务启动配置:

docker run -d -p 26379:26379 -v /home/data/sentinel.conf:/data/sentinel.conf --name sentinel redis redis-sentinel sentinel.conf

 这样就不会配置无效,因为-v只是映射数据卷到容器内,而不是服务启动的默认配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值