redis用docker搭建主从复制

1.分别使用以下命令启动3个Redis,创建三个不同端口号的实例

  1. docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/library/redis
  2. docker run --name redis-6380 -p 6380:6379 -d hub.c.163.com/library/redis
  3. docker run --name redis-6381 -p 6381:6379 -d hub.c.163.com/library/redis

2.使用docker ps命令,查看是否启动成功
image.png

3.配置redis集群,分别使用docker inspect 容器id查看内网地址
image.png
4.使用6379端口号的机器为主服务器,其余两台为从服务器
使用 docker exec -ti 容器ID /bin/bash 分别进入三个Redis容器
进入容器后,使用 redis-cli 命令,连接redis服务端
image.png
连接服务后,使用 info replication 查看当前机器的角色
未配置前,三台redis均为 master主机
image.png

5.使用上面的方法,分别进入 redis-6379、redis-6380、redis-6381容器内部,并连接redis服务端
分别在redis-6380和redis-6381使用 SLAVEOF 172.17.0.2 6379 命令
在redis-6379 使用 info replication 命令,验证主从关系是否配置成功
image.png
6.当你在主服务器操作时,从服务器也会相应修改
image.pngimage.png

redis不重启修改密码

在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。
redis 127.0.0.1:6379> config set requirepass test123
查询密码:
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
密码验证:
redis 127.0.0.1:6379> auth test123
OK
再次查询:
redis 127.0.0.1:6379> config get requirepass
1) “requirepass”
2) “test123”
PS:如果配置文件中没添加密码 那么redis重启后,密码失效;