docker创建redis主从复制

docker创建redis主从复制

第一步 创建主节点容器

执行命令
docker run -p 6379:6379 --name redis-master -v /tmp/config/redis/data/6379:/data -v /tmp/config/redis/6379/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes

参数说明

 -p 6379:6379  #端口
--name redis-master #容器名称
 -v /tmp/config/redis/data/6379:/data -v /tmp/config/redis/6379/redis.conf:/etc/redis/redis.conf #挂载目录,这里需要自己创建redis.conf
 -d redis redis-server /etc/redis/redis.conf #以指定配置文件启动
 --appendonly yes #开启持久化

主节点配置文件

# 允许所有ip地址访问
bind 0.0.0.0

# 以守护进程的方式运行,就是关闭了远程连接窗口,redis依然运行,使用容器时必须注释,否则启动容器失败
# daemonize yes

# 设置需要密码才能访问
requirepass 19460

# 设置redis持久化,默认是no
appendonly yes

# 设置主节点的密码(当主节点设置了requirepass配置时需要配置该项或者需要搭建哨兵模式的时候也需要配置该项,因为如果主节宕机重启之后就会#  # 装换为slave节点,这个时候需要去连接sentinel选举出来的新的master节点)
# masterauth root

第二步 进入容器获取ip

执行docker inspect redis-master 找出master节点的ip

 "Gateway": "172.17.0.1",
 "IPAddress": "172.17.0.5"

这里ip为172.17.0.5

第三步创建两个从节点

执行命令
创建第一个从节点
docker run -p 6380:6379 --name redis-slave1 -v /tmp/config/redis/data/6380:/data -v /tmp/config/redis/6380/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes
创建第二个从节点
docker run -p 6381:6379 --name redis-slave2 -v /tmp/config/redis/data/6381:/data -v /tmp/config/redis/6381/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes

配置文件(两个从节点一样)

# 允许所有ip地址访问
bind 0.0.0.0

# 以守护进程的方式运行,就是关闭了远程连接窗口,redis依然运行,使用容器时必须注释,否则启动容器失败
# daemonize yes

# 设置需要密码才能访问
requirepass 19460

# 设置redis持久化,默认是no
appendonly yes

# 设置主节点的密码(当主节点设置了requirepass配置时需要配置该项)
masterauth 19460

# 主从模式下主节点的IP和PORT(这里要根据实际情况来定,我这里使用的是容器内部的IP和端口)
# 这里也可以使用容器的名称,使用容器名称的时候在构建容器的时候就需要使用--link参数
# 这里也可以使用物理地址,使用物理地址的时候在构建容器的时候就需要使用--net参数
replicaof 172.17.05 6379

验证

  1. 执行docker exec -it redis-master redis-cli 进入容器
  2. 执行info replication
    出现下面的信息说明配置成功
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.6,port=6379,state=online,offset=182,lag=1
slave1:ip=172.17.0.7,port=6379,state=online,offset=182,lag=1

  1. 在主节点写入数据,进入从节点读取
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值