单机(win10)使用Docker搭建Redis集群(Redis Sentinel 集群部署)

搭建过程参考:使用Docker搭建Redis集群(Redis Sentinel 集群部署)

概述

Redis 集群可以在一组 redis节点之间实现高可用性和 sharding。在集群中会有 1 个 master 和多个slave节点。当 master节点失效时,应选举出一个slave 节点作为新的 master。然而 Redis 本身(包括它的很多客户端)没有实现自动故障发现并进行主备切换的能力,需要外部的监控方案来实现自动故障恢复。

Redis Sentinel 是官方推荐的高可用性解决方案。它是 Redis 集群的监控管理工具,可以提供节点监控、通知、自动故障恢复和客户端配置发现服务。


工作原理说明.png
搭建 Redis 集群

搭建一主两从环境,docker-compose.yml 配置如下(注意端口号)

version: '2.0'
services:
  master:
    image: redis
    container_name: redis-master
    ports:
      - 6378:6379

  slave1:
    image: redis
    container_name: redis-slave-1
    ports:
      - 6380:6379
    command: redis-server --slaveof redis-master 6379

  slave2:
    image: redis
    container_name: redis-slave-2
    ports:
      - 6381:6379
    command: redis-server --slaveof redis-master 6379

执行docker-compose up -d

进入到主节点查看状态,如下即一主两从集群搭建完成~


集群搭建成功.png
搭建 Sentinel 集群

由于我的window10挂载文件始终不成功,总是挂载成目录,所以先把redis镜像作为底包,新建一个镜像把配置文件塞进去

查找redis-master的ip.png
sentinel.conf写入如下配置:
# 禁止保护模式
protected-mode no

# 自定义集群名,其中 127.0.0.1 为 redis-master 的 ip(一台宿主机搭建集群的过程中,需要将ip换成上图中以太网适配器的ipv4地址),
# 6378 为 redis-master 的端口,2 为最小投票数(因为有 3 台 Sentinel 所以可以设置成 2)
sentinel monitor mymaster 127.0.0.1 6378 2

# 若redis未设置密码,本处也可不设置
sentinel auth-pass mymaster 123456
Dockerfile写入如下配置:
FROM redis:latest
MAINTAINER test "[email protected]"
ADD sentinel.conf /usr/local/etc/redis/sentinel.conf

在sentinel目录下执行 docker build -t zyx/redis-sentinel .

我们至少需要创建三个 Sentinel 服务,docker-compose.yml 配置如下:

version: '2.0'
services:
  sentinel1:
    image: zyx/redis-sentinel
    container_name: redis-sentinel-1
    ports:
      - 26379:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf


  sentinel2:
    image: zyx/redis-sentinel
    container_name: redis-sentinel-2
    ports:
      - 26380:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf


  sentinel3:
    image: zyx/redis-sentinel
    container_name: redis-sentinel-3
    ports:
      - 26381:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf

执行docker-compose up -d

进入容器查看,如下代表sentinel集群搭建成功!


sentinel集群搭建成功.png

你可能感兴趣的:(单机(win10)使用Docker搭建Redis集群(Redis Sentinel 集群部署))