我用docker创建了redis主从结构,主服务器bind 0.0.0.0,副本 replicaof 172.30.0.5 6379,主服务器设置了密码requirepass 123456,副本也masterauth 123456,主从都开启了持久化,还固定了docker容器中的ip地址......打开主服务器info replication,是有连接的,副本打开一连,就显示master_link_status:down了。
看日志才发现这是一个非常浅显的bug,我的副本也开启了挂载,这导致从服务器不知该读挂载数据还是复制主服务器数据。
副本注释掉挂载就正常了,因为主服务器挂载,主从间的同步,所以重启对这些副本也无影响。
docker network ls可以查看网络列表,如果当前docker-compose已经创建过网络,需要删除后再重新创建并指定ip,因为旧网络很可能已经占据了这个ip段,导致新网络无法正常创建。
固定ip这个操作非常好用:https://docs.docker.com/compose/compose-file/compose-file-v2/#ipv4_address-ipv6_address
这是我的docker-compose.yml文件:
version: '3'
services:
redis_master:
image: 'redis:alpine'
ports:
- '6380:6379'
volumes:
- './sailredis/0:/data'
- './sailredisconf/0:/usr/local/etc/redis'
command: redis-server /usr/loc

本文记录了一次使用Docker部署Redis主从结构时遇到的问题,即master_link_status:down。原因在于从服务器同时挂载数据卷,导致无法正确复制主服务器数据。解决方案是取消从服务器的数据卷挂载,确保主从通过网络同步。同时提到了Docker网络管理和容器IP固定的重要性,以及Redis主从自动同步和全量同步的机制。

2541

被折叠的 条评论
为什么被折叠?



