美文网首页
单机(win10)使用Docker搭建Redis集群(Redis

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

作者: 泠泠儿 | 来源:发表于2020-02-07 09:50 被阅读0次

    搭建过程参考:使用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 "123@45.com"
    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

          本文链接:https://www.haomeiwen.com/subject/dvxmxhtx.html