docker.7z

一、Redis 镜像

Docker Hub Redis 镜像

拉取镜像

  1. docker pull redis:4.0.14-alpine

该镜像构建相关命令 该镜像使用规则

01.png

注意事项:配置文件 redis.conf 中的 daemon 一定不要配置为 yes 。保持默认的 “NO”。否则容器会闪退。

二、单节点 redis

略,直接通过官网能够得到结果

Docker hub Redis 镜像是使用描述

三、一主多从带哨兵部署

服务信息

网段:172.07.0.0/16

描述 ip 开放端口(宿主机/Docker)
Master节点 172.07.0.11 6379 / 6379
slave1 172.07.0.12 6380 / 6379
slave2 172.07.0.13 6381/ 6379
sentinel1 172.07.0.21 26379 / 26379
sentinel2 172.07.0.22 26380 / 26379
sentinel3 172.07.0.23 26381 / 26379

05.png

相关构建信息目录

02.png

  • config-目录: 存放redis配置文件
  • data-目录: 存放 redis 持久化数据
  • docker-compose.yaml-文件: Docker-compose 文件
  • redis-4.0.14.tar.gz-文件:Docker Redis 对应的 Redis 安装包,可以从其中获取 redis.conf 等配置文件原件

docker-compose.yaml 公共内容

公共的配置为:网络的配置

  1. ## docker-compose 版本号
  2. version: '2'
  3. ## 网络
  4. networks:
  5. redis_net:
  6. driver: bridge
  7. ipam:
  8. config:
  9. - subnet: 172.07.0.0/16
  10. gateway: 172.07.0.1

Redis 节点相关信息

docker-compose.yaml 内容

03.png

master 节点 redis.conf 配置文件,主要配置

  1. ## 注释该行,允许其他主机访问该节点
  2. # bind 127.0.0.1
  3. ## 监听端口
  4. port 6379
  5. ## 开启 aof 持久化
  6. appendonly yes
  7. ## Redis 链接密码
  8. requirepass 654321

slave 节点 redis.conf 配置文件,主要配置

  1. ## 注释该行,允许其他主机访问该节点
  2. # bind 127.0.0.1
  3. ## 监听端口
  4. port 6379
  5. ## 开启 aof 持久化
  6. appendonly yes
  7. ## Redis 链接密码
  8. requirepass 654321
  9. ## 配置 master 节点对应的 ip + port
  10. slaveof 172.07.0.11 6379
  11. ## 配置 master 节点链接密码
  12. masterauth 654321

哨兵 节点相关信息

docker-compose.yaml 内容

04.png

sentinel 节点 sentinel.conf 配置文件,主要配置

  1. ## 监听端口
  2. port 26379
  3. ## 监听的 master ip + port,当 2 个 sentinel
  4. sentinel monitor mymaster 172.7.0.11 6379 2
  5. ## master 节点认证密码
  6. sentinel auth-pass mymaster 654321
  7. # master被当前sentinel实例认定为失效的间隔时间,格式为sentinel down-after-milliseconds <mastername> <milliseconds>
  8. sentinel down-after-milliseconds redisMaster 10000

测试-Redis主从复制

一主二从服务信息如下

06.png

数据简单测试

master 存入数据,slave 查看

07.png

测试-Redis高可用

下线 master 节点,查看集群信息

下线 redis-master 重新进行选举

08.png
下线 redis-master ,重新进行选举,redis-slave-1 上位成为 master

重新上线 redis-master

需要将 redis-master 以 slave 的方式加入到 新的主从结构中。

// TODO sentinel 测试

四、Redis 集群部署