使用docker-compose搭建 Redis 集羣,Sentinel 集羣

搭建 Redis 集羣

一主兩從環境,docker-compose.yml配置如下:

version: '3.1'
services:
  master:
    image: redis:4.0.11
    container_name: redis-master
    ports:
      - 6379:6379

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

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

搭建 Sentinel 集羣

創建三個Sentinel服務,docker-compose.yml配置如下:

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

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

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

修改 Sentinel 配置文件
需要三份sentinel.conf配置文件,分別爲sentinel1.confsentinel2.confsentinel3.conf,配置文件內容相同。如下

port 26379
dir /tmp
# 自定義集羣名,其中 127.0.0.1 爲 redis-master 的 ip,6379 爲 redis-master 的端口,2 爲最小投票數(因爲有 3 臺 Sentinel 所以可以設置成 2)
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

查看集羣是否生效
進入Sentinel容器,使用Sentinel API查看監控情況:

docker exec -it redis-sentinel-1 /bin/bash
redis-cli -p 26379
sentinel master mymaster
sentinel slaves mymaster
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章