Sentinel 哨兵 实现高可用

我们知道redis是有主从复制的,例如下图:

但如果master主进程挂掉之后,没有slave站出来当master,那么整个写redis业务就崩溃了。虽然其他业务可以从从redis上继续读取数据,当主写redis已经崩溃了,势必造成影响。而redis为我们提供了Sentinel来做redis的高可用工具,因此个人觉得实际上redis并不需要像Nginx那样,与keepalived组合成高可用,或者进行集群化操作,用多sentinel与主从即可。当然集群也有着它的好处:构建多节点,节点上的数据都不一样把数据都分散存放到各个节点上进行存储,某个节点的退出依旧有其他节点补充。引用网上的图:

(集群节点)

主从是master或者slave都会备份一份数据,集群是节点共享数据,在中间件模式中,可以使用集群与主从相结合的模式开发。

部署

构建简单的一个sentinel,一个 master redis ,两个slove redis 。

在linux上自建的conf配置目录(/code/redis/conf)下,可以看到四个conf文件:

[[email protected]_71_225_centos conf]# ll

-rw-r----- 1 root root 138 Apr 19 19:17 redis-6379.conf

-rw-r--r-- 1 root root 108 Apr 19 19:15 redis-6380.conf

-rw-r--r-- 1 root root  86 Apr 19 19:15 redis-6381.conf

-rw-r--r-- 1 root root 447 Apr 19 19:18 sentinel-26379.conf

分别配置如下:

redis-6379.conf   ==>

port 6379

daemonize yes

logfile "6379.log"

dbfilename "dump-6379.rdb"

dir "/tmp/log"

-----------------------------------------------------------------------------------------------------------------

redis-6380.conf  ==>

port 6380

daemonize yes

logfile "6380.log"

dbfilename "dump-6380.rdb"

dir "/tmp/log"

slaveof 127.0.0.1 6379

-----------------------------------------------------------------------------------------------------------------

redis-6381.conf  ==>

port 6381

daemonize yes

logfile "6381.log"

dbfilename "dump-6381.rdb"

dir "/tmp/log"

slaveof 127.0.0.1 6379

-----------------------------------------------------------------------------------------------------------------

sentinel-26379.conf ==>

port 26379

dir "/tmp/log"

logfile "26379.log"

sentinel monitor mymaster 127.0.0.1 6379 1

sentinel down-after-milliseconds mymaster 10000

sentinel failover-timeout mymaster 900000

原文地址:https://www.cnblogs.com/zhenghongxin/p/8885879.html

时间: 2024-07-31 18:04:49

Sentinel 哨兵 实现高可用的相关文章

redis应用之使用sentinel实现主从复制高可用

一.redis的高可用管理工具sentinel介绍 sentinel是一个管理redis实例的工具,它可以实现对redis的监控.通知.自动故障转移.sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态, 如果redis master不能工作,则会自动启动故障转移进程,将其中的一个slave提升(通过选举)为master,其他的slave重新设置新的master服务器.而故障的master再次启动后 会被sentinel自动降级为slave服务器加入

基于Sentinel的Redis高可用方案

数据存储我们在应用设计过程中非常重要的一部分,无论是关系型数据库,还是Redis.MongoDB等非关系型数据库,都有很多的高可用方案,还有一些针对不同业务设计的中间件,使其性能更有特色,更能保证数据存储的稳定和安全. 目前主流的Redis的数据存储架构有Redis单点,Redis主从,基于Sentinel的Redis主备.基于keepalive的redis主备,以及Redis集群Cluster,还有豌豆荚开源的Codis等是目前业内比较流行的解决方案,不同的存储架构,是若干个技术工程师,根据自

Sentinel实现Redis高可用

实现目标: 一主两从,集群起始VIP在master上边,如果当前master挂了,sentinel自动选出一个slave当选master,并把VIP漂移到这台机器,然后把另一台slave指向的master改为此机器,并同步此机器的数据,实现高可用 实操 环境说明 IP redis角色 安装的软件 172.16.1.216 master redis,redis-sentinel 172.16.1.223 slave redis.redis-sentinel 172.16.1.215 slave r

部署 redis 哨兵模式高可用集群

环境 master: 192.168.1.224 slave1: 192.168.1.225 slave2: 192.168.1.226 修改系统参数 #somaxconn echo 1024 > /proc/sys/net/core/somaxconn #overcommit_memory vim /etc/sysctl.conf vm.overcommit_memory = 1 安装redis 5 yum install -y gcc gcc-c++ wget http://download

Redis(九)高可用专栏之Sentinel模式

本文讲述Redis高可用方案中的哨兵模式--Sentinel,RedisClient中的Jedis如何使用以及使用原理. Redis主从复制 Redis Sentinel模式 Jedis中的Sentinel Redis主从复制 Redis主从复制是Sentinel模式的基石,在学习Sentinel模式前,需要理解主从复制的过程. 1.保证数据一致性的机制 Redis主从复制的含义和Mysql的主从复制一样,即利用Slave从服务器同步Master服务器数据的副本.主从复制的最为关键的点在于主从数

Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. 复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器. Redis正是利用这两个功能来保证Redis的高可用. 哨兵(sentinal) 哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题. 1.Redis哨兵

5.如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么?

作者:中华石杉 作者:中华石杉 面试题 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么? 面试官心理分析 其实问这个问题,主要是考考你,redis 单机能承载多高并发?如果单机扛不住如何扩容扛更多的并发?redis 会不会挂?既然 redis 会挂那怎么保证 redis 是高可用的? 其实针对的都是项目中你肯定要考虑的一些问题,如果你没考虑过,那确实你对生产系统中的问题思考太少. 面试题剖析 如果你用 redis 缓存技术的话,

Redis缓存,持久化,高可用

一,Redis作缓存服务器 ? 本篇博客是接着上一篇博客未分享完的技术点. ? redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题.就是缓存带来的缓存穿透,缓存击穿,缓存失效问题,继而引用分布式锁. 1.1,缓存穿透 ? 在如今的项目中大多采用垂直的MVC架构,由service层去调用DAO层,然后DAO层再去查询数据库.而redis作为缓存服务器就是在service层去调用DAO层去查询时先去缓存服务器查询,如果存在则直接返回该数据,否则再去查询数据库.由此可

Redis sentinel哨兵启动、切换过程简单分析

sentinel是Redis高可用Ha的重要组成部分,在传统Redis master/slave架构下,担任对主从复制的状态监控,并在主节点异常后自动将从节点提升为主节点对外提供服务. 下图展示了一个在哨兵sentinel集群中监控redis主从复制的一个例子,其中: 1. Sentinel集群包括三个sentinel节点sentinel1.sentinel2.seninel3,sentinel集群各节点之间互相监控哨兵运行状态. 2.Sentinel集群各节点分别与Redis主节点进行ping