Redis 集群(1主2从3哨兵模式)

Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。Redis Sentinel 是官方推荐的高可用性解决方案。它不会因为节点宕机而导致服务不可用,同时,它可以作为监控管理工具,可以提供节点监控、通知、自动故障恢复和客户端配置发现服务等,即使出现了故障,也能很快知道,并进行修复。
在这里插入图片描述
在这里插入图片描述

  1. 节点配置信息

    # 主:ip:6379|从:ip:6380,ip:6381|sentinel:ip:26379,ip:26380,ip:26381
    
  2. Redis主从配置

    # master
    docker run --name redis-master --net=host -v /home/redis/data6379:/data -d redis:7.0  redis-server --port 6379
    # slave1
    docker run --name redis6380 --net=host -v /home/redis/data6380:/data -d redis:7.0  redis-server --slaveof 192.168.4.123 6379 --port 6380
    # slave2
    docker run --name redis6381 --net=host -v /home/redis/data6381:/data -d redis:7.0  redis-server --slaveof 192.168.4.123 6379 --port 6381
    
  3. Sentinel集群配置

    # 新建文件
    # sentinel-26379.conf
    protected-mode no
    bind 0.0.0.0
    port 26379
    dir "/home/redis_sentinel/log"
    logfile "/home/redis_sentinel/log/26379.log"
    daemonize no
    sentinel monitor redis-master 192.168.4.123 6379 2
    sentinel down-after-milliseconds redis-master 5000
    sentinel failover-timeout redis-master 180000
    sentinel parallel-syncs redis-master 1
    # sentinel-26380.conf
    protected-mode no
    bind 0.0.0.0
    port 26380
    dir "/home/redis_sentinel/log"
    logfile "/home/redis_sentinel/log/26380.log"
    daemonize no
    sentinel monitor redis-master 192.168.4.123 6379 2
    sentinel down-after-milliseconds redis-master 5000
    sentinel failover-timeout redis-master 180000
    sentinel parallel-syncs redis-master 1
    # sentinel-26381.conf
    protected-mode no
    bind 0.0.0.0
    port 26381
    dir "/home/redis_sentinel/log"
    logfile "/home/redis_sentinel/log/26381.log"
    daemonize no
    sentinel monitor redis-master 192.168.4.123 6379 2
    sentinel down-after-milliseconds redis-master 5000
    sentinel failover-timeout redis-master 180000
    sentinel parallel-syncs redis-master 1
    
    # 启动命令
    docker run -p 26379:26379 --restart=always --name sentinel-26379 -v /home/redis_sentinel/sentinel-26379.conf:/etc/redis/sentinel.conf -v /home/redis_sentinel/data/sentinel-26379-data:/data -v /home/redis_sentinel/log:/home/redis_sentinel/log -d redis:7.0 redis-sentinel /etc/redis/sentinel.conf --appendonly yes
    
    docker run -p 26380:26380 --restart=always --name sentinel-26380 -v /home/redis_sentinel/sentinel-26380.conf:/etc/redis/sentinel.conf -v /home/redis_sentinel/data/sentinel-26380-data:/data -v /home/redis_sentinel/log:/home/redis_sentinel/log -d redis:7.0 redis-sentinel /etc/redis/sentinel.conf --appendonly yes
    
    docker run -p 26381:26381 --restart=always --name sentinel-26381 -v /home/redis_sentinel/sentinel-26381.conf:/etc/redis/sentinel.conf -v /home/redis_sentinel/data/sentinel-26381-data:/data -v /home/redis_sentinel/log:/home/redis_sentinel/log -d redis:7.0 redis-sentinel /etc/redis/sentinel.conf --appendonly yes
    
    
  4. 参数说明

    # 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
    --privileged=true
    # 映射配置文件
    -v /home/redis_sentinel/sentinel-26379.conf:/etc/redis/sentinel.conf
    # 映射数据目录
    -v /home/redis_sentinel/data/sentinel-26379-data:/data
    # 指定配置文件启动redis-sentinel进程
    redis-sentinel /etc/redis/sentinel.conf
    # 开启数据持久化
    --appendonly yes
    
    
    
  5. Redis命令

    # 进入容器
    docker exec -it 容器名称 /bin/bash
    # redis客户端
    redis-cli -p port
    # 查看主从配置
    info replication
    # 从其中某一个可用的连接地址拿到所有相关的集群sentinel信息,使用的redis管道命令是
    sentinel sentinels redis-master
    # 查看master信息
    sentinel master redis-master
    # 查看slaves信息
    sentinel slaves redis-master
    
  6. 错误信息

    # 这里保错的原因是因为挂载的配置路径没有写的权限,执行chmod 777 -R 加目录即可
    1:X 08 Jun 2023 02:19:32.579 # Could not rename tmp config file (Device or resource busy)
    1:X 08 Jun 2023 02:19:32.580 # WARNING: Sentinel was not able to save the new configuration on disk!!!: Device or resource busy
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值