使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)

目录

      • 1、Redis 单机版安装
        • 1.1 拉取 Redis
        • 1.2 创建数据卷目录
        • 1.3 修改 redis.conf
        • 1.4 启动 Redis 容器
        • 1.5 进入容器连接 Redis
      • 2、Redis 一主两从集群搭建
        • 2.1 复制三份 redis.conf
        • 2.2 启动 master
        • 2.3 启动 两个redis slave
        • 2.4 三者关系查看
        • 2.5 数据测试

1、Redis 单机版安装

1.1 拉取 Redis

首先从 docker hub 拉取 Redis 镜像,这里拉取 7.0 版。

docker pull redis:7.0

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第1张图片

1.2 创建数据卷目录

首先要在宿主机/root 目录中创建一个目录 redis,将来用于存放外挂文件 redis.conf。

mkdir redis

使用rz命令上传一份redis.conf:

rz
1.3 修改 redis.conf

修改配置文件:

vim redis.conf

1.解除 IP 绑定

将 bind 行注释掉,以解除 Redis 对访问者 IP 的绑定。

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第2张图片

2.关闭保护模式
关闭保护模式,否则只能本机访问自己。
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第3张图片

3.指定持久化目录
这里要指定 RDB 或 AOF 的持久化目录为/data,这样无论是哪种持久化文件,均会保存
到该目录。后面会指定容器中的/data 目录为数据卷挂载点目录。
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第4张图片

1.4 启动 Redis 容器
docker run --name myredis \
-v /root/redis/redis.conf:/etc/redis/redis.conf \
-v /root/redis/data:/data \
-dp 6379:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf

这里指定了两个数据卷,其中一个是文件,一个是目录:

  • /root/redis/redis.conf:/etc/redis/redis.conf
  • /root/redis/data:/data
    对于该启动命令需要注意的是,其后面运行的命令为 redis-server,且加载的配置文件为
    挂载点目录/etc/redis 中的 redis.conf。

查看运行的docker的镜像:

docker ps -a

在这里插入图片描述

1.5 进入容器连接 Redis

通过 docker exec 命令进入 Redis 容器后,就可通过 redis-cli 客户端连接上这个 Redis,然后执行 Redis 命令了。

docker exec -it myredis /bin/bash
redis-cli

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第5张图片

到此为止,单机版的redis搞定啦!!!!

2、Redis 一主两从集群搭建

现要搭建一个“一主两从”的 Redis 集群。这三个容器的端口号都保持默认,但对外暴露出的端口号分别为 6381、6382、6383。其中,6381 的为 master,另外两个为 slave。

2.1 复制三份 redis.conf

现仍在前面的/root/redis 目录中完成配置。复制 redis.conf 并重命名为 redis1.conf,并在文件最后添加如下配置,以对外宣布当前 redis 的 IP 与端口。注意,该 IP 为 docker 宿主机的 IP,端口号为当前 redis 对外暴露的端口号。

复制 redis.conf 并重命名为 redis1.conf

cp redis.conf redis1.conf

修改redis1.conf

vim redis1.conf

最后加上两句语句如下:

slave-announce-ip 192.168.162.105
slave-announce-port 6381

同理redis2.conf redis3.conf 如下:

slave-announce-ip 192.168.162.105
slave-announce-port 6382
slave-announce-ip 192.168.162.105
slave-announce-port 6383

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第6张图片

2.2 启动 master

首先启动 master,即启动 myredis-1 容器。

docker run --name myredis-1 \
-v /root/redis/redis1.conf:/etc/redis/redis.conf \
-v /root/redis/data/6381:/data \
-dp 6381:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第7张图片

2.3 启动 两个redis slave

在启动 slave 的命令中需要指出其 slaveof 于谁。

启动myredis-2:

docker run --name myredis-2 \
-v /root/redis/redis2.conf:/etc/redis/redis.conf \
-v /root/redis/data/6382:/data \
-dp 6382:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf --slaveof 192.168.162.105 6381

启动myredis-3:

docker run --name myredis-3 \
-v /root/redis/redis3.conf:/etc/redis/redis.conf \
-v /root/redis/data/6383:/data \
-dp 6383:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf --slaveof 192.168.162.105 6381

2.4 三者关系查看

查看这三个容器节点的 info replication,可以看到它们间的主从关系已经建立。

docker exec -it myredis-1 redis-cli info replication

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第8张图片

docker exec -it myredis-2 redis-cli info replication

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第9张图片

docker exec -it myredis-3 redis-cli info replication

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第10张图片

2.5 数据测试

在 master 节点 myredis-1 中写入数据。

docker exec -it myredis-1 /bin/bash

redis-cli

set name tigerhhzz11
set name tigerhhzz11

使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第11张图片

这里可以新开一个连接窗口进行测试
在 slave 节点 myredis-2 与 myredis-3 节点中可读出数据。
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)_第12张图片

你可能感兴趣的:(docker,redis,java,redis集群)