首页 > 数据库 >一文读懂Redis之哨兵(Sentinel)模式搭建

一文读懂Redis之哨兵(Sentinel)模式搭建

时间:2025-01-15 17:30:44浏览次数:3  
标签:Redis redis 读懂 Master 步骤 Sentinel root 节点

目录

一、环境规划

二、Redis服务主从模式搭建

步骤一、Master节点创建目录

步骤二、Master节点下载Redis安装包

步骤三、Master节点解压Redis安装包

步骤四、Master节点进行make编译

步骤五、Slave01节点、Slave02节点根据步骤一至步骤四安装Redis服务

步骤六、Master节点修改Redis服务配置文件

步骤七、Slave01节点修改Redis服务配置文件

步骤八、Slave02节点修改Redis服务配置文件

步骤九、Master节点启动Redis服务

步骤十、Slave01节点启动Redis服务

步骤十一、Slave02节点启动Redis服务

步骤十二、查看Redis服务主从状态信息

步骤十三、验证Redis服务主从数据同步

三、哨兵模式搭建

步骤一、修改Master节点的哨兵配置文件sentinel.conf

步骤二、修改Slave01节点的哨兵配置文件sentinel.conf

步骤三、修改Slave02节点的哨兵配置文件sentinel.conf

步骤四、分别启动三个节点的哨兵进程

步骤五、分别查看三个节点哨兵进程状态信息

四、模拟Master节点宕机主从切换

步骤一、模拟Master节点宕机

步骤二、分别查看三个节点的日志信息

步骤三、查看Redis服务主从状态信息

步骤四、分别查看两个节点哨兵进程状态信息

步骤五、验证Redis服务主从数据同步


        Redis服务主从模式下,当主节点宕机时,需要人工干预手动切换主节点,无法进行故障自动切换。为了解决这个问题,Redis服务在主从模式的基础上延伸出哨兵(Sentinel)模式。

        Redis服务哨兵(Sentinel)模式是Redis的高可用性方案,由一个或者多个哨兵(Sentinel)进程组成。这些哨兵(Sentinel)进程对主从节点进行监控,不停地检测主节点存活状态、主从运行情况等,当主节点宕机无法提供服务时,哨兵(Sentinel)进程会快速检测到并自动进行故障迁移切换主节点,从而保证Redis服务的高可用性。

        本次Redis服务哨兵(Sentinel)模式搭建采取一主二从+3个哨兵(Sentinel)节点的架构。为了节约服务器资源,3个哨兵(Sentinel)节点复用一主二从的3台服务器节点。

一、环境规划

● 服务器IP

主库(Master节点):192.168.110.131

从库01(Slave01节点):192.168.110.132

从库02(Slave02节点):192.168.110.133

Sentinel01节点:192.168.110.131

Sentinel02节点:192.168.110.132

Sentinel03节点:192.168.110.133

● 系统版本

CentOS Linux release 7.7.1908 (Core)

● 关闭防火墙

此处为方便演示,主库(Master节点)、从库01(Slave01节点)、从库02(Slave02节点)直接关闭防火墙。

生产环境可以根据实际需求开通服务器防火墙策略。

systemctl stop firewalld

systemctl stop iptables

● Redis版本

此处使用redis-5.0.10版本

● 环境依赖

需要安装gcc-c++

[root@Master ~]# yum install -y gcc-c++

[root@Slave01 ~]# yum install -y gcc-c++

[root@Slave02 ~]# yum install -y gcc-c++

二、Redis服务主从模式搭建

步骤一、Master节点创建目录

● 创建安装主目录

[root@Master ~]# mkdir -p /data/redis

● 创建数据目录

[root@Master ~]# mkdir -p /data/redis/data/

步骤二、Master节点下载Redis安装包

● 安装wget命令

[root@Master ~]# yum install -y wget

● 进入主目录

[root@Master ~]# cd /data/redis/

● 下载安装包

此处使用redis-5.0.10版本。

[root@node01 redis]# wget http://download.redis.io/releases/redis-5.0.10.tar.gz

步骤三、Master节点解压Redis安装包

● 解压

[root@Master redis]# tar -zxvf redis-5.0.10.tar.gz

● 重命名

[root@Master redis]# mv redis-5.0.10 redis_6379

步骤四、Master节点进行make编译

[root@Master redis]# cd /data/redis/redis_6379/

[root@Master redis_6379]# make

步骤五、Slave01节点、Slave02节点根据步骤一至步骤四安装Redis服务

步骤六、Master节点修改Redis服务配置文件

[root@Master ~]# vim /data/redis/redis_6379/redis.conf

修改关键配置如下:

● redis进程是否以后台守护进程的方式运行,yes为是,no为否

daemonize yes

● 设置客户端连接Redis服务的连接密码。

requirepass 123456

● 设置Slave节点Redis服务连接Master节点Redis服务的密码。

masterauth 123456

● 指定redis进程的PID文件存放位置

pidfile /data/redis/redis_6379/redis_6379.pid

● redis进程的端口号

port 6379

● 关闭保护模式,可以外部访问。

protected-mode no

● 允许访问Redis的地址,0.0.0.0 表示允许所有远程访问。

bind 0.0.0.0

● 客户端(redis-cli)闲置多长时间后关闭连接,默认此参数为0即关闭此功能

timeout 300

● redis日志级别,可用的级别有debug\verbose\notice\warning

loglevel notice

● log文件输出位置

logfile "/data/redis/redis_6379/redis_6379.log"

● 设置数据库的数量,默认为0可以使用select 命令在连接上指定数据库id

databases 16

● redis数据持久化,此处指定300秒内至少有10个key值发生变化时将数据持久化到数据文件。

save 300 10

● 指定本地数据库文件名

dbfilename dump.rdb

● 指定本地数据文件存放位置

dir /data/redis/data

● 指定是否在每次更新操作后进行日志记录,默认为no。

appendonly no

● 指定更新日志文件名,默认为appendonly.aof

appendfilename appendonly.aof

● 指定更新日志的条件,有三个可选参数 : no表示由操作系统进行数据缓存同步到磁盘(速度快);always表示每次更新操作后手动调用fsync()将数据写到磁盘(速度慢但安全)&#

标签:Redis,redis,读懂,Master,步骤,Sentinel,root,节点
From: https://blog.csdn.net/brucelbj/article/details/145162960

相关文章

  • Sentinel
    目录1.官网2.概念2.1.核心库(java客户端)2.2.控制台(Dashboard)3.安装控制台3.1.默认端口80803.2.下载jar包3.3.运行jar包4.控制台4.1.菜单说明4.2.规则持久化问题5.微服务如何整合5.1.pom加入依赖5.2.如何让资源(方法)受保护5.3.application.yml添加sentinel控制台......
  • Redis 缓存穿透、击穿、雪崩——解析与防范
    前言Redis是一个高性能的键值数据库,广泛应用于缓存、会话存储、实时数据分析等场景。然而,在高并发的环境下,Redis缓存可能会遇到缓存击穿、缓存穿透和缓存雪崩这三大问题。这些问题不仅影响系统的稳定性和性能,还经常出现在面试题中,值得我们深入了解和防范......
  • 【Gossip 协议】Redis 集群中节点之间的通信方式?
    #分布式系统#Gossip协议在分布式系统中,不同的节点进行数据/信息共享是一个基本的需求。一种比较简单粗暴的方法就是集中式发散消息,简单来说就是一个主节点同时共享最新信息给其他所有节点,比较适合中心化系统。这种方法的缺陷也很明显,节点多的时候不光同步消息的效率低,还太......
  • 【Java开发】Java、Maven、gradle、SQL、Redis常用命令大全:java程序员必备神器
    在Java开发的世界中,掌握Java、Maven、Gradle、SQL、Redis的常用命令是每个程序员的必修课。无论是构建项目、管理依赖,还是操作数据库,这些工具都能让你的开发效率提升一个档次!本文将为你整理一份超实用的命令清单,助你成为开发高手!一、Java:核心开发语言......
  • Redis 实战篇 ——《黑马点评》(中)
    《引言》    (中)篇将接着记录Redis实战篇——《黑马点评》(上)篇之后的学习内容与笔记,希望大家能够点赞、收藏支持一下 ᕦ(・ㅂ・)ᕤ,谢谢大家。传送门(上):Redis实战篇——《黑马点评》(上)传送门(中):当-前-页传送门(下):NULL三、优惠卷秒杀1.全局唯一ID与秒杀 ......
  • 一文读懂如何创建食品加工和包装 SOP
    在食品行业中,确保产品的安全性和质量是至关重要的。为了实现这一目标,建立一套详尽且高效的标准操作程序(SOP)对于食品加工与包装环节来说不可或缺。本文将引导您深入理解如何高效创建食品加工与包装SOP,并巧妙融入helplook工具,以提升流程管理的精确性和效率。一、明确SOP的核心价值......
  • 如何处理Redis连接中断的问题?
    当您遇到Redis连接中断(如“Rediswentaway”)的问题时,这通常是由于网络连接不稳定、配置参数不合理或资源不足等原因引起的。为了解决这个问题,您可以按照以下步骤进行排查和优化:检查网络连接:确保服务器与Redis实例之间的网络连接稳定可靠。可以通过ping命令测试延迟情况,或者使......
  • Redis大键问题
    Redis大键问题是一个常见的性能瓶颈和潜在的问题源。以下是对Redis大键问题的详细解析:一、什么是Redis大键Redis大键并不是指存储在Redis中的某个Key的大小超过一定的阈值,而是指该Key所对应的value过大。对于string类型来说,一般情况下超过10KB则被认为是大键;对于set、zset、hash......
  • 详解Redis的Set类型及相关命令
    目录SADDSMEMEBERSSISMEMBERSCARDSPOPSMOVESREMSINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE内部编码应用场景集合类型是保存多个字符串类型的元素的,但和列表类型不同的是,集合中元素之间是⽆序的,且元素不允许重复。⼀个集合中最多可以存储个元素。......
  • Redis 面试题
    Redis主要有哪些功能?缓存加速:Redis通常被作为应用程序的缓存层,将热点数据或频繁访问的数据存储在Redis中,减少对数据库的访问次数,常见应用场景包括Web页面缓存、数据库查询结果缓存、API调用缓存等。轻量级数据库:可以用作一个轻量级数据库,尤其是需要在高速读写和持久化的场......