docker redis 主从复制

没事自己搞虚拟机在docker里面部署了主从复制模式,直接show code:

 

虚拟机1 作为master
# 拉取redis镜像
docker pull redis

#创建redis-0容器 作为master
docker run -d -p 6379:6379 --name redis-0 --network host  redis-server --requirepass 

# --name redis-0 指定redis容器名称为redis-0
# --network host 指定容器的ip为本机ip(该虚拟机) 而不是docker分配虚拟ip
# --requirepass  指定redis密码,这里我设置的是 123456

#进入容器查看是否创建成功:
docker exec -it redis-0 redis-cli -a 123456

#成功进入,表明创建成功


接着是虚拟机2 作为slave
创建的步骤一样命令一样 只是这里为了区分,容器的名称我们设置为redis-1
docker run -d -p 6379:6379 --name redis-1 --network host  redis-server --requirepass 

#同样进入容器中查看
docker exec -it redis-1 redis-cli -a 123456

#接着我们需要将redis-1 指定为redis-0的slave,redis里面有个slaveof host port 命令
#顾名思义,即 host port 的从redis
#通过 ip addr 查看redis-0 所在虚拟机地址为192.168.137.128
slaveof 192.168.137.128 6379

#接着配置master登录密码 config set masterauth ,上面我们设置了密码为123456
config set masterauth 123456

接着使用info 查看是否设置成功

如下:查看Replication部分

docker redis 主从复制_第1张图片

#role 角色:slave 

master_host 主redis地址:192.168.137.128

master_port 主redis端口:6379

#到这里一切正常,但是下面却是:

master_link_status:down 

#表明连接到master时是失败的,前面的配置是正常的,所以应该是两台虚拟机之间网络不通导致

# 关闭防火墙
systemctl stop firewalld

#永久关闭防火墙
systemctl stop firewalld

#重启一下redis-0
docker restart redis-1

重启之后发现连接已经正常:

docker redis 主从复制_第2张图片

我们再看一下redis-0的信息:一切正常

docker redis 主从复制_第3张图片

接着我们在redis-0中set一下数据,看一下是否自动备份了到redis-1中:

随后我们去redis-1 中取数据:

这时 redis-0 中的数据已经自动同步到了redis-1中,redis简单的主从模式配置成功。

如果要增加slave-redis,设置方式与redis-1一样。

你可能感兴趣的:(redis)