阅读须知:
本文主要内容为 Docker 搭建 Redis 主从,想要了解如何在 Docker 安装 Redis 的同学请阅读前文【Redis】基于Docker安装Redis(详细步骤)
注:本文中提到的前文均指上述文章。本文是在前文的基础上进行的 Redis 主从复制,建议同学们按照前文步骤从头开始一步步操作,可以避免一些不必要的报错。
操作步骤
1. 创建 slave 对应目录
- 在
/usr/local/software/redis
目录下,输入mkdir -p 6380/conf 6380/data 6380/log
,新建多级目录(大家可根据自己的情况选择自己对应的路径创建)。- 输入
tree
,查看多级目录结构。
演示图例如下:
2. 设置日志读写权限
- 在
6380/log
目录下,输入touch redis.log
新建日志文件 “redis.log”。- 输入
chmod 777 redis.log
设置日志文件读写权限。
演示图例如下:
3. 上传/拷贝配置文件
- 上传文件:这一步可以选择上传或拷贝配置文件,跟着前文一步步搭建过来的同学建议拷贝之前的配置文件,如果之前没有上传过配置文件的同学请前往文章顶部下载对应资源。
- 拷贝文件:根据前文步骤,在
usr/local/software/redis/6379/conf
目录下已有配置文件,只需将其拷贝到6380/conf
目录即可。
a. 输入cd usr/local/software/redis/6379/conf
,进入指定目录。
b. 输入cp redis.conf ../../6380/conf
,拷贝 redis.conf 配置文件。- 检查是否完成拷贝。
演示图例如下:
4. 查询 master 的 ip
- 输入
docker inspect redis_6379 |grep IPA
,查询 master 的 ip 地址。
细心的同学可以发现,这里的 ip 地址就是我们依照前文设置的 redis 的 ip地址。
演示图例如下:
5. 修改配置文件
- 输入
vim redis.conf
,进入编辑器界面。- 按下
:
,输入set nu
,显示行号。- 修改479行的内容,这里的 ip 是上一步我们查询出来的 ip,每个人根据自己的 ip 来修改,如下图所示。
- 在480行,添加
slave-read-only no
,如下图所示。- 修改1255行的内容,如下图所示。
演示图例如下:
6. 创建容器
输入对应指令,创建运行 redis slave 的容器。
docker run -it \
--name redis_6380 \
--privileged \
-p 6380:6379 \
--network my_docker_net \
--ip 172.18.12.11 \
-v /usr/local/software/redis/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /usr/local/software/redis/6380/data/:/data \
-v /usr/local/software/redis/6380/log/redis.log:/var/log/redis.log \
-d redis \
/usr/local/etc/redis/redis.conf
演示图例如下:
7. 查看日志文件
- 进入
6380/log
目录下,输入cat redis.log
,查看日志信息。
演示图例如下:
8. 进入容器,运行Redis客户端
- 输入
docker exec -it redis_6380 bash
,进入容器。- 输入
redic-cli
,运行 redis 客户端。- 输入
info replication
,查看对应信息。
演示图例如下:
以同样的方法进入 master 容器:
1. 输入docker exec -it redis_6379 bash
,进入容器。
2. 输入redis-cli
,运行 redis 客户端。
3. 输入info replication
,查看对应信息。
演示图例如下:
至此,基于 Docker 搭建 Redis 的主从复制已成功完成!小伙伴们可根据自身需求,按照步骤继续建立更多数量的 slave 。