Redis之docker搭建redis主从环境

一、素材准备

将准备好的素材上传至服务器指定目录下【文章末尾提供素材下载】

在这里插入图片描述

二、使用dockerfile构建镜像

  • 创建网络
docker network create --subnet=192.169.1.0/24 redisnetwork
#查看docker网络
#docker network ls
# 删除docker 网络
# docker network rm redisnetwork

在这里插入图片描述

  • 构建镜像

利用素材文件中的 dockerfile 构建 redis 镜像
Dockerfile 文件内容如下

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
#创建相关目录能够看到日志信息跟数据跟配置文件
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

构建镜像

docker build -t royeecai/redis5:v1 . 

在这里插入图片描述

  • 创建容器
# 创建主redis
docker run -itd \
-v /root/redis_source/masterandslave/master:/redis \
-p 6350:6379 \
--network=redisnetwork \
--ip=192.169.1.11 \
--name redis5master royeecai/redis5:v1

# 创建从redis
docker run -itd \
-v /root/redis_source/masterandslave/slave:/redis \
-p 6340:6379 \
--network=redisnetwork \
--ip=192.169.1.12 \
--name redis5slave royeecai/redis5:v1

在这里插入图片描述

  • 配置主从
    进入容器启动redis主服务
# 进入主容器并启动redis服务
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5master sh
#在容器中执行如下命令启动redis服务
redis-server /redis/conf/redis.conf

在这里插入图片描述

另起一个终端进入从容器启动redis主服务

# 进入从容器并启动redis服务
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5slave sh
#在容器中执行如下命令启动redis服务
redis-server /redis/conf/redis.conf 

在这里插入图片描述
另起一终端进入从服务器

# 进入从容器
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5slave sh
# 启动redis客户端
/ # redis-cli 
# 指定主服务器
127.0.0.1:6379> SLAVEOF 192.169.1.11 6379
OK
# 从服务器无法写数据
127.0.0.1:6379> set name royeecai
(error) READONLY You can't write against a read only replica.

另起一终端进入主服务器

# 进入主容器
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5master sh
# 启动redis客户端
/ # redis-cli 
#设置name=royeecai 主服务器负责写业务
127.0.0.1:6379> set name royeecai
OK
127.0.0.1:6379> get name
"royeecai"
127.0.0.1:6379> 

在这里插入图片描述


END

关注公众号 扣丁曼 回复 redis01 获取本次项目素材。

猜你喜欢

转载自blog.csdn.net/Qcg0223/article/details/105837542