Docker容器下的redis主从配置部署全过程

Dockerfile:

FROM alpine

RUN sed-i's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \

&& apk add  gcc g++ libc-dev  wget vim  openssl-dev make  linux-headers \

&& rm-rf/var/cache/apk/*

#通过选择更小的镜像,删除不必要文件清理不必要的安装缓存,从而瘦身镜像

#创建相关目录能够看到日志信息跟数据跟配置文件

RUN mkdir-p/usr/src/redis \

&& mkdir-p/usr/src/redis/data \

&& mkdir-p/usr/src/redis/conf \

&& mkdir-p/usr/src/redis/log  \

&& mkdir-p/var/log/redis

RUN wget-O/usr/src/redis/redis-4.0.11.tar.gz"http://download.redis.io/releases/redis-4.0.11.tar.gz" \

&& tar-xzf/usr/src/redis/redis-4.0.11.tar.gz-C/usr/src/redis \

&& rm-rf/usr/src/redis/redis-4.0.11.tar.tgz

RUN cd/usr/src/redis/redis-4.0.11 &&  make&& make PREFIX=/usr/local/redis install \

&& ln-s/usr/local/redis/bin/*  /usr/local/bin/  && rm-rf/usr/src/redis/redis-4.0.11

#COPY ./conf/redis.conf  /usr/src/redis/conf

CMD ["/usr/local/bin/redis-server","/usr/src/redis/conf/redis.conf"]


构建镜像

docker build -t redis-ms-test .


设置指定网络

docker network create --subnet=192.168.1.0/24 redis-network


运行主从容器

docker run -itd -v /usr/docker/test/03/redis/master:/usr/src/redis -p 6380:6379 --network=redis-network --ip=192.168.1.2 --name redis-master redis-ms-test

docker run -itd -v /usr/docker/test/03/redis/slave:/usr/src/redis -p 6380:6379 --network=redis-network --ip=192.168.1.2 --name redis-slave redis-ms-test


进入容器

docker exec -it redis-master sh  ||   docker exec -it redis-slave sh


测试redis服务是否可用

redis-cli -a 123456


开启主从复制

127.0.0.1:6379 > slaveof 主机ip 端口号


查看信息

127.0.0.1:6379 > info replication

若想查看主从设置是否生效,可在主机添加数据,再从从机查询,若查询得到,则证明设置成功。


tips:

(1)如若未生效,请查看防火墙是否开放相对应端口。若为云服务器,则查看是否添加相对应网络安全组信息

(2)默认配置中,从节点不可写入,只可读取。若需要从节点可进行写入可修改 slave-read-only 为 no

(3)开启主从复制的3种方式,

如若主机有设置密码需修改配置文件下的masterauth :

# masterauth <master-password>  //设置主机密码


查看日志文件

查看配置信息下的日志存放路径(logfile)

例:logfile "/usr/src/redis/log/redis.log"

       cat /usr/src/redis/log/redis.log

在日志记录中,可以大概看到主从复制的过程。

关于redis的全量复制与部分复制,可参考文章:https://www.jianshu.com/p/0e1ff8ea22bc

关于redis主从复制的原理以及过程,可参考文章:https://segmentfault.com/a/1190000018268350

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容