创建redis的挂载目录
在/usr/local/software下创建redis目录
在redis目录下创建对应3个redis服务器的目录,以端口号命名: 6379,6380,6381
在每个文件夹下都创建data, conf, 和logs文件夹。
-
conf:存储redis配置文件
-
logs: 存储redis日志文件
#以下命令在/usr/local/software/redis 目录下执行 mkdir -p 6379/conf 6379/data 6379/logs mkdir -p 6380/conf 6380/data 6380/logs mkdir -p 6381/conf 6381/data 6381/logs #创建对应日志文件 并修改为777权限 touch 6379/logs/redis_6379.log touch 6380/logs/redis_6380.log touch 6381/logs/redis_6381.log chmod 777 6379/logs/redis_6379.log chmod 777 6380/logs/redis_6380.log chmod 777 6381/logs/redis_6381.log
上传配置文件并修改
==把网上的的配置文件到每个conf目录下==
-
6379作为主服务器,修改其配置
# 修改75行为 bind 0.0.0.0 #修改94行为 protected-mode no #修改304行 日志存放位置 logfile "/var/log/redis/redis_6379.log"
-
6380、6381作为从服务器,修改配置
#6380依次修改 bind 0.0.0.0 protected-mode no logfile "/var/log/redis/redis_6380.log" #1254行,开启AOF持久化 appendonly yes #6381依次修改 bind 0.0.0.0 protected-mode no logfile "/var/log/redis/redis_6381.log" #1254行 appendonly yes
创建主从容器
==删除以前创建的容器==
创建主服务器容器
docker run -itd --name redis_6379 --privileged=true -v /usr/local/software/redis/6379/conf/redis_6379.conf:/usr/local/etc/redis/redis.conf -v /usr/local/software/redis/6379/data/:/data -v /usr/local/software/redis/6379/logs/redis_6379.log:/var/log/redis/redis_6379.log -p 6379:6379 --restart=always redis /usr/local/etc/redis/redis.conf
创建成功后,检查容器是否允许,是否能正常进入redis
docker ps docker exec -it redis_6379 bash redis-cli ping #如果容器没有启动可以检查日志,看看问题 docker logs redis_6379
创建从服务器容器并配置
-
查主服务的容器ip地址
docker inspect redis_6379| grep IPA
-
修改从服务器挂载的配置文件
末尾添加主从配置
# 以下命令在/usr/local/software/redis 目录下执行 vim 6380/conf/redis_6380.conf vim 6381/conf/redis_6381.conf #配置文件中末尾添加配置 slave-read-only no #主服务器容器的ip 端口 replicaof 172.17.0.4 6379
-
创建6380、6381的容器
docker run -itd --name redis_6380 --privileged=true -v /usr/local/software/redis/6380/conf/redis_6380.conf:/usr/local/etc/redis/redis.conf -v /usr/local/software/redis/6380/data/:/data -v /usr/local/software/redis/6380/logs/redis_6380.log:/var/log/redis/redis_6380.log -p 6380:6379 --restart=always redis /usr/local/etc/redis/redis.conf docker run -itd --name redis_6381 --privileged=true -v /usr/local/software/redis/6381/conf/redis_6381.conf:/usr/local/etc/redis/redis.conf -v /usr/local/software/redis/6381/data/:/data -v /usr/local/software/redis/6381/logs/redis_6381.log:/var/log/redis/redis_6381.log -p 6381:6379 --restart=always redis /usr/local/etc/redis/redis.conf
-
查看主从设置是否生效
进入每个redis服务中查看
docker exec -it 容器名 bash redis-cli info replication
以上是正常流程,我这遇到一些小问题
搭建第二个从服务器的时候,没挂载上主服务器
经过多方询问,原因是6381的配置文件有点小问题
解决方案如上
此时再进入主服务器6379
到此redis主从服务器搭建就完成了