首页 > 数据库 >Redis哨兵模式搭建

Redis哨兵模式搭建

时间:2023-01-06 14:55:05浏览次数:50  
标签:no Redis redis 哨兵 master sentinel home yes 搭建

一:哨兵主要作用

监控:监控redis主库及从库运行状态;
通知:如果redis发生故障转移,可以通过邮件通知管理员;
自动故障转移:一旦发现主库宕机,则在从库中通过选举新的master进行故障转移。

二:工作原理

哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。
每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方宕机了,这种宕机称为”主观认为宕机” Subjective Down,简称sdown)。
若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master真正宕机,即客观上认为宕机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。

三:部署

master: 192.168.1.247
slave1: 192.168.1.110
slave2: 192.168.1.211

1. Redis服务安装

这里Redis版本为5.0.5。
Redis的安装步骤为:下载、解压、编译、配置、启动。
以下以247服务器安装为例,其他类似。

1.1 安装所需环境和工具

centos
yum -y install wget vim tcl gcc make

ubuntu
apt-get install wget vim tcl gcc make

1.2 下载Redis

cd /home/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

1.3 解压

tar -zxvf redis-5.0.5.tar.gz

1.4 编译

cd redis-5.0.5/
make install PREFIX=/home/redis/

1.5 拷贝配置文件到Redis程序目录

cp redis.conf /home/redis/bin
cp sentinel.conf /home/redis/bin

redis.conf是Redis服务的配置文件;sentinel.conf是哨兵服务的配置文件。

1.6 修改配置文件

mkdir -p /home/redis/run
mkdir -p /home/redis/log
mkdir -p /home/redis/working
vim /home/redis/bin/redis.conf

通用配置

 # 需要不同服务器的节点连通,就不能设置为 127.0.0.1
 bind 0.0.0.0
 # 需要不同服务器的节点连通,这个就要设置为 no
 protected-mode no
 port 6379
 # 密码
 requirepass "ABC!!123"
 # 主节点认证,主从节点均需要配置
 masterauth "ABC!!123"
 tcp-backlog 511
 timeout 0
 tcp-keepalive 300
 # 设置后台运行redis
 daemonize yes
 supervised no
 dir "/home/redis/working"
 pidfile "/home/redis/run/redis_6379.pid"
 logfile "/home/redis/log/redis.log"
 loglevel notice
 databases 16
 always-show-logo yes
 save 900 1
 save 300 10
 save 60 10000
 stop-writes-on-bgsave-error yes
 rdbcompression yes
 rdbchecksum yes
 dbfilename "dump.rdb"
 replica-serve-stale-data yes
 replica-read-only yes
 repl-diskless-sync no
 repl-diskless-sync-delay 5
 repl-disable-tcp-nodelay no
 replica-priority 100
 lazyfree-lazy-eviction no
 lazyfree-lazy-expire no
 lazyfree-lazy-server-del no
 replica-lazy-flush no
 appendonly yes
 appendfilename "appendonly.aof"
 appendfsync everysec
 no-appendfsync-on-rewrite no
 auto-aof-rewrite-percentage 100
 auto-aof-rewrite-min-size 64mb
 aof-load-truncated yes
 aof-use-rdb-preamble yes
 lua-time-limit 5000
 latency-monitor-threshold 0
 notify-keyspace-events ""
 hash-max-ziplist-entries 512
 hash-max-ziplist-value 64
 list-max-ziplist-size -2
 list-compress-depth 0
 set-max-intset-entries 512
 zset-max-ziplist-entries 128
 zset-max-ziplist-value 64
 hll-sparse-max-bytes 3000
 stream-node-max-bytes 4096
 stream-node-max-entries 100
 activerehashing yes
 client-output-buffer-limit normal 0 0 0
 client-output-buffer-limit replica 256mb 64mb 60
 client-output-buffer-limit pubsub 32mb 8mb 60
 hz 10
 dynamic-hz yes
 aof-rewrite-incremental-fsync yes
 rdb-save-incremental-fsync yes

从节点配置

replicaof 192.168.1.211 6379

1.7 启动服务

cd /home/redis/bin
./redis-server redis.conf

1.8 使用 ps -ef|grep redis 查看是否都启动成功,IP和端口号都正确

使用info Replication查看主从复制状态

cd /home/redis/bin
./redis-cli -p 6379 
auth ABC!!123
info Replication

主节点

从节点(这里从节点端口用的6377)

2.哨兵配置

哨兵模式采用一主二从三哨兵模式。
2.1 修改配置

cd /home/redis/bin
vim sentine.conf
# 保护模式默认关闭
protected-mode no
# 绑定监听IP
bind 0.0.0.0
# 哨兵端口
port 26379
# 后台运行
daemonize yes
# pid
pidfile "/home/redis/run/redis-sentinel.pid"
# log
logfile "/home/redis/log/redis-sentinel.log"
# 工作目录
dir "/home/redis/working"
# 设置初始master以及法定认为下线人数:
sentinel monitor redis-master 192.168.1.211 6379 2
# 配置认证密码
sentinel auth-pass redis-master ABC!!123
# 设置初始master以及法定认为下线人数:
sentinel down-after-milliseconds redis-master 30000
# 指定在故障转移期间,多少个slave向新的master同步得数量,如果slave是提供查询服务,则应该设置小一点更好
sentinel parallel-syncs redis-master 1
# 指定故障转移超时时间,默认为3分钟
sentinel failover-timeout redis-master 180000
# 禁止修改脚本,避免脚本重置
sentinel deny-scripts-reconfig yes

2.2 启动

./redis-sentinel sentinel.conf
```shell-session

### 3.验证
3.1查看哨兵信息
随意登录一台主机执行 info Sentinel命令,下面以连接211机器为例。
```shell-session
cd /home/redis/bin
./redis-cli -p 26379 info Sentinel

输出信息如下:

SpringBoot配置Redis哨兵模式

application.yml 添加Redis配置

spring:
    redis: 
        database: 1
        password: ABC!!123
        # 哨兵模式
        sentinel:
            master: redis-master
            nodes: 192.168.1.211:26379,192.168.1.247:26379,192.168.1.110:26379
```shell-session

标签:no,Redis,redis,哨兵,master,sentinel,home,yes,搭建
From: https://www.cnblogs.com/hi-lijq/p/17030481.html

相关文章

  • 直播平台搭建源码,更改图片透明度
    直播平台搭建源码,更改图片透明度 publicpartialclassForm1:Form{  publicForm1()  {    InitializeComponent();  }  Imagenew_img; ......
  • flutter-macos(M1)开发环境搭建
    文章目录​​flutter-macos(M1)开发环境搭建​​​​1.下载fluttersdk​​​​2.解压缩​​​​3.配置环境变量​​​​4.检查​​​​5.其他配置​​​​5.1gradle​​......
  • Redis实现秒杀功能 lua脚本判断库存、判断一人一单、添加到stream队列、异步处理订单
    需求:新增秒杀商品-将秒杀商品的id和秒杀数量添加到秒杀表中数据库操作将秒杀信息保存到Redis中基于Lua脚本,判断秒杀库存、一人一单,决定用户是否有下单资格如果抢购......
  • Picgo搭建图床
    简言虽然有许多部署图片提供网址的服务,但是哪天别人不给你提供服务了,你的图片可能就加载不出来了。所以决定自己运用Picgo部署到GitHub搭建自己的图床,这样就非常方便。......
  • Windows下安装并设置Redis
    作者: ​​铁锚​​日期:2014年8月10日 ​​Redis​​对于​​Linux​​是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。详情请参考:​......
  • 『中级篇』Vagrant在本地搭建多节点K8S集群(65)
    nikube搭建是单节点的环境,但是不够直观,这次coreos搭建一个多节点的。源码:​​https://github.com/limingios/docker/tree/master/No.10​​​​https://github.com/limingio......
  • replit搭建的alist如何进行升级
    replit搭建的alist如何进行升级本文章同样发布于我的个人博客:Aprdec'sskyalist可以用replit白嫖应该很多人都知道了,而且点进来的估计99%都是用replit搭建的,不得不说,......
  • Redis缓存
    Redis缓存有哪些淘汰策略缓存被写满是不可避免的。即使你精挑细选,确定了缓存容量,还是要面对缓存写满时的替换操作。缓存替换需要解决两个问题:决定淘汰哪些数据,如何处理那......
  • Ubuntu 安装 Redis
    本文档记录使用Ubuntu安装一个生产可用的Redis实例。版本UbuntuUbuntu22.04.1LTSRedis7.0.7如果你正在运行一个非常小的发行版(比如Docker容器......
  • 《DFZU2EG_4EV MPSoC之嵌入式Linux开发指南》第四章 开发环境搭建​
    开发环境搭建​要进行ZYNQ开发肯定要先搭建好开发环境,我们在开始学习STM32的时候肯定需要安装一堆的软件,比如MDK、IAR、串口调试助手等等,这个就是STM32的开发环境搭建。同样......