环境
- 在一台linux系统上部署1个主(master)redis,2个从(slave)redis
- 都是docker redis
注意: 如果在3台linux服务器上分别部署 1主2从,有些配置不需要修改
部署主master
按照下面链接进行配置:
https://www.malaoshi.top/show_1EF5nZ940S8N.html
查看该容器内网ip地址(废弃)
注意: 如果 一台linux部署 主从,必须 查看该容器ip地址。如果是在不同的 linux 上部署 主从,略过
执行下面命令,查看master redis的内网ip地址:
docker inspect redis6.0
部署 slave 1
创建 redis_slave_1文件夹,在该目录下,下载redis配置文件:
wget http://download.redis.io/redis-stable/redis.conf
设置密码
requirepass 123456
配置主(master)ip和port(有坑)
配置master redis的ip和port
注意:
- 不能写
127.0.0.1,docker容器相当于linux虚拟机,127.0.0.1指虚拟机本机,该虚拟机只运行一个slave redis,而应该指向master容器的ip。 - 该ip可以输入宿主机的ip
- (废弃)如果 一台linux部署 主从,此处master redis的ip地址是上面 【查看master容器内网ip地址】,
slaveof 宿主机 6379
配置主(master)密码
masterauth 123456
启动容器
docker run -p 6389:6379 \
-v /root/docker_slave_1/data:/data \
-v /root/docker_slave_1/redis.conf:/etc/redis/redis.conf \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
--name redis_slave_1 \
-d redis:6.0 redis-server /etc/redis/redis.conf
命令解释:
-p 6389:6379端口映射,:前表示宿主机,在一台机器上部署主从,此端口必须不一样;:后表示容器--name redis_slave_1:指定容器名称-v /root/docker_slave_1/data:/data:挂载数据目录,规则与端口映射相同-v /root/docker_slave_1/redis.conf:/etc/redis/redis.conf:挂载配置文件-v /etc/localtime:/etc/localtime:ro \设置系统时间时区-v /etc/timezone:/etc/timezone:ro \设置时区-d:表示后台启动redisredis:6.0:根据镜像redis:6.0创建并运行容器redis-server:执行的命令,redis-server是redis服务命令/etc/redis/redis.conf:根据/etc/redis/redis.conf配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/root/docker_redis6.0/conf/redis.conf
查看redis信息
连接master redis
执行
info replication
可以看到当前redis角色,slave数量、信息等
连接slave redis
执行
info replication
可以看到当前redis角色,master信息等
部署 slave 2
安照 【部署 slave 1】进行部署
创建 redis_slave_2文件夹,在该目录下,slave 1的redis.conf配置文件,复制到该目录下
启动容器
docker run -p 6399:6379 \
-v /root/docker_slave_2/data:/data \
-v /root/docker_slave_2/redis.conf:/etc/redis/redis.conf \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
--name redis_slave_2 \
-d redis:6.0 redis-server /etc/redis/redis.conf
测试
在master redis添加一条数据,在slave redis可以查看到


