docker redis主从复制

本文介绍了Redis主从复制的概念及其实现步骤,包括构建自定义Redis Docker镜像、创建Docker自定义网络、生成主从容器,并配置主从关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,redis主从复制的概念

redis的主从复制和读写分离是密不可分的,主从服务层,读写分离基于代码层面,redis的主从不能提升查询读写的效率的.主要用于分担服务器压力,以及备份.主从的架构有很多,一主一从,一主多从,多主多从…,这里只记录一主一从.redis认为每一台服务都是主服务,只有声明自己为从服务后,对主服务器进行连接,首次进行全量复制,后面进行部分复制.

二,构建redis镜像

FROM alpine:3.11
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/*

COPY ./redis-5.0.7.tar.gz redis-5.0.7.tar.gz

#通过选择更小的镜像,删除不必要文件清理不必要的安装缓存,从而瘦身镜像
#创建相关目录能够看到日志信息跟数据跟配置文件  sh
RUN mkdir -p /usr/src/redis \
      && mkdir -p /redis/data \
      && mkdir -p /redis/conf \
      && mkdir -p /redis/log   \
      && mkdir -p /var/log/redis \
      && tar -zxvf redis-5.0.7.tar.gz -C /usr/src/redis \
      && rm -rf redis-5.0.7.tar.gz \
      && cd /usr/src/redis/redis-5.0.7 && make \
      && cd /usr/src/redis/redis-5.0.7 && make install;

EXPOSE 6379

# CMD ["redis-server","/usr/src/redis/redis-5.0.7/redis.conf"]

#ENTRYPOINT ["redis-server", "/usr/src/redis/redis-5.0.7/redis.conf"]

三,创建docker自定义网关

docker在生成容器的时候,会默认分配给容器网关的,docker的网络配置分为host模式(使用本机网络),网桥模式(自动分配一个网关,用于容器与宿主机网络通信),指定网关的模式(自己分配一个网关),建议使用第三种自定义网关,因为其他两种模式是不稳定的,也许某一次关机后会重新分配.
自定义网关:

docker network create --subnet=192.160.1.0/24(这个地址是你自己的ip地址,一般可以分配1-255)  mynetwork

:docker网关命令

四,根据镜像文件生成容器

一,生成主服务器

docker run -itd -v /www/ocean_study/masterandslave/master:/redis -p 6350:6379 --network=zhucongnet --ip=10.0.4.100 --name redis5master redis5ms

二,生成从服务器

docker run -itd -v /www/ocean_study/masterandslave/master:/redis -p 6350:6379 --network=zhucongnet --ip=10.0.4.100 --name redis5master redis5ms

三,指定文件开启redis服务

//进入主服务器
docker exec -it redis5master sh
//进入从服务器
docker exec -it redis5slave sh
//分别在两个容器中执行 指定文件启动redis服务
redis-server /redis/redis.conf

//从服务器执行主从命令
slaveof 10.0.4.3 6379

四,查看主从配置信息

info replication

四,远程连接服务器

远程连接时老是报错: Error: Connection reset by peer
配置文件redis.conf中的:

#bind 127.0.0.1
需要注释掉。
因为这个是设置redis服务器只在本地监听,从而会拒绝来自外网的监听.
同时:
protected-mode no
去掉注释,设置为 no,表明不已保护模式运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值