1、sentinel.conf文件

每个哨兵 在启动之前必须删除下面代码中我所标识的部分,下面的日志你如果挂载了在本地,你使用docker logs redis-sentinel是看不到的,切记!!!

# 保持Redis默认风格的配置
bind 0.0.0.0
port 26379
# Docker必须使用前台模式
daemonize no
# 匹配默认PID路径
pidfile "/var/run/redis/redis-sentinel.pid"
# 匹配默认日志路径
#logfile "sentinel.log"
# 默认数据目录
dir "/data"

# 监控配置
sentinel auth-pass mymaster 123456
sentinel monitor mymaster 192.168.1.33 6379 2

# 必要的哨兵参数

protected-mode no

# Generated by CONFIG REWRITE
# 以下的内容需要在部署时删除,哨兵自动生成
latency-tracking-info-percentiles 50 99 99.9
user default on nopass sanitize-payload ~* &* +@all
sentinel myid 80e8aa4318339fa07a278c6c924097110eac1568
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0

sentinel known-replica mymaster 192.168.1.35 6379

sentinel known-replica mymaster 192.168.1.34 6379

sentinel known-sentinel mymaster 172.20.0.2 26379 be184d4862f51ccb2ee695587357d5bdfefd358d

sentinel known-sentinel mymaster 172.30.0.2 26379 143c4911f7f899753590a9954fd05bb40696b5c8

集群中主节点从节点密码必须一致

2、docker-compose.yml文件

services:
  redis-sentinel:
    image: redis:latest
    container_name: redis-sentinel
    ports:
      - "26379:26379"
    # 使用默认命令格式,仅指定配置文件
    command: redis-sentinel /etc/redis/sentinel.conf
    volumes:
      # 挂载目录而非直接挂载文件,符合Redis默认目录结构
      - ./data:/data
      - ./conf:/etc/redis
    restart: always

3、一些命令

# 进入任意一个哨兵容器
docker exec -it redis-sentinel redis-cli -p 26379

# 查看主节点状态
sentinel master mymaster

# 查看所有从节点状态
sentinel slaves mymaster

# 查看所有哨兵节点
sentinel sentinels mymaster

# 获取当前主节点地址
sentinel get-master-addr-by-name mymaster

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐