今天来讲如何实现在docker下配置redis的主从复制(读写分离)和哨兵机制,希望能给广大博友带来帮助。
Docker配置redis主从配置
1.拉取docker镜像
docker ps -a
由此可见 只有一个redis 主配置
2.配置两个从配置
docker run -name slave -p 6380:6379 -d redis
docker run --name slave1 -p 6381:6379 -d redis
3.再次查看docker镜像
docker ps -a
4.开始主从配置
4.1先查看内网的ip地址
docker inspect 872a7feaa6fd
3个redis的内网ip地址为:
redis-6379:172.17.0.2:6379
redis-6380:172.17.0.3:6379
redis-6381:172.17.0.4:6379
4.2进入容器内部 查看当前redis角色(主还是从)
目前三个都是master状态
4.3、使用redis-cli命令修改redis-6380、redis-6381的主机为172.17.0.2 6379
4.4、查看redis-6379是否已经拥有2个从机
由此可见 connected_slaves:2 拥有2个从机
Docker配置redis哨兵机制
5、配置Sentinel哨兵
进入3台redis容器内部进行配置,在容器根目录里面创建sentinel.conf文件
文件内容为:sentinel monitor mymaster 172.17.0.2 6379 1
出现bash: vim: command not found
解决:1、apt-get update 2、apt-get install vim
最后,启动Redis哨兵:
6.测试
6.1打开多个窗口(便于观察)
6.2关闭主配置(Master)
docker stop 872a7feaa6fd
查看其他两个是否选举成功
完成。