redis哨兵功能
redis哨兵功能
redis-Sentinel(哨兵)
- 前言
- 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户都没有实现主从切换的功能
- redis-sentinel是redis官方推荐的高可用性解决方案,
- 而redis-Sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发现master宕机,进行自动切换slave>master
- 功能:
- 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识
- 如果被标识的是主节点,Sentinel就会和其他的Sentinel节点'协商',如果其他节点也人为主节点不可达,就会选举一个Sentinel节点来完成自动故障转义
- 在master-slave(主-从)进行切换后,master_redis.conf,slave_redis.conf和Sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,Sentinel.conf的监控目标会随之调换
redis主从复制背景
redis主从复制可将主节点数据同步给从节点,从节点此时有俩个作用:
- 一旦主节点宕机,从节点作为主节点的备份可以随机顶上来.
- 扩展主节点的读能力,分担主节点读压力
存在问题:
- 一旦主节点宕机,从节点上位,那么需要人为修改所有应用方的主节点地址(改为新的master地址),还需要命令所有从节点复制新的主节点
所以要实现这些功能,redis-sen就可以解决
主从复制架构
- redis-Sentinel(哨兵功能):
- 哨兵进行检测,主从架构是否正常,如果主库挂掉,哨兵会自动修复redis.conf,进行添加/删除slaveof 指令
- 作用:只是监控redis
redis-Sentinel(哨兵)配置
- 这里是以三个redis为实例,一主俩从
准备三个redis实例,一主俩从
# 主配置
vim redis-6379.conf
# 插入数据
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/var/redis/data/"
#从节点配置
vim redis-6380.conf
#插入数据
port 6380
daemonize yes
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/var/redis/data/"
slaveof 127.0.0.1 6379 // 从属主节点 # 从节点配置
vim redis-6381.conf
#插入数据
port 6381
daemonize yes
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/var/redis/data/"
slaveof 127.0.0.1 6379 // 从属主节点
启动主节点
redis-server redis-6379.conf #登录客户端
redis-cli -p 6380
# 检测是否通信
ping # 输出为pong则为正常
注意问题:这里如果启动客户端显示
Could not connect to Redis at 127.0.0.1:6379: Connection refused
解决方法:创建mkdir /var/redis/data/
启动俩个slave(从)节点
redis-server redis-6380.conf
redis-server redis-6381.conf # 登录客服端验证
与上述主节点验证方法一样
检测主从的状态是否正常
redis-cli -p 6379 info replication # 输出内容如下为正常
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=qsmaster,status=ok,address=127.0.0.1:6380,slaves=2,sentinels=3
注意:
如果发现实验不成功,需删掉所有的配置文件,从新来过
准备三个哨兵,开始监控主从架构
准备三个配置文件,哨兵文件
vim redis-26379.conf # 名字随意起,
#插入内容
port 26379
dir /var/redis/data/
logfile "26379.log"
sentinel monitor qsmaster 127.0.0.1 6379 2
sentinel down-after-milliseconds qsmaster 30000
sentinel parallel-syncs qsmaster 1
sentinel failover-timeout qsmaster 180000
daemonize yes #第二个哨兵
vim redis-26380.conf port 26380
dir /var/redis/data/
logfile "26380.log"
sentinel monitor qsmaster 127.0.0.1 6379 2
sentinel down-after-milliseconds qsmaster 30000
sentinel parallel-syncs qsmaster 1
sentinel failover-timeout qsmaster 180000
daemonize yes #第三哨兵
vim redis-26381.conf port 26381
dir /var/redis/data/
logfile "26381.log"
sentinel monitor qsmaster 127.0.0.1 6379 2
sentinel down-after-milliseconds qsmaster 30000
sentinel parallel-syncs qsmaster 1
sentinel failover-timeout qsmaster 180000
daemonize yes
启动三个哨兵
redis-sentinel redis-26379.conf
redis-sentinel redis-26380.conf
redis-sentinel redis-26381.conf
注意!!如果发现实验不成功,需删掉所有的哨兵配置文件,从新来过
注意!!如果发现实验不成功,需删掉所有的哨兵配置文件,从新来过
检查哨兵状态
redis-cli -p 26379 info sentinel 信息如下为正常
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=qsmaster,status=ok,address=127.0.0.1:6380,slaves=2,sentinels=3
模拟哨兵自动进行主从切换
# 查看进程信息
ps -ef |grep redis
# 杀死6379的进程
kill -9 6379的进程号 # 查看6380和6381的身份信息,看是否进行主从切换
redis-cli -p 6380 info replication
redis-cli -p 6381 info replication # 手动启动6379挂掉的数据库,看是否会被哨兵,添加进信息主从集群
redis-server redis-6379.conf redis-cli -p 6379 info replication
redis哨兵功能的更多相关文章
- Redis哨兵功能与集群搭建
6.redis哨兵功能 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机, ...
- redis哨兵架构的基础知识及部署和管理
一.前言 1.哨兵的介绍 sentinal,中文名是哨兵 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 ()集群监控,负责监控redis master和slave进程是否正常工作 ()消 ...
- Redis 哨兵
作用 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入. 主要提供了配置提供者,通知,哨兵的监控和自动故障转移功能.哨兵的核心功能是主节点的自动故障转移. 下面是Red ...
- 架构师养成记--33.Redis哨兵、redis简单事务
Redis哨兵 有了主从复制,如果我想想对主从服务器进行监控,在redis2.6后提供了哨兵机制,2.6有哨兵1.0版本,并不稳定.2.8以后的哨兵功能才稳定起来. 顾名思义,哨兵就是监控Redis系 ...
- Redis哨兵原理详解
一.概述 Redis哨兵(以下称哨兵)是为Redis提供一个高可靠解决方案,对一定程序上的错误,可以不需要人工干预自行解决. 哨兵功能还有监视.事件通知.配置功能.以下是哨兵的功能列表: 监控:不间断 ...
- Redis哨兵模式实现集群的高可用
先了解一下哨兵都 做了什么工作:Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel ...
- 11.Redis 哨兵集群实现高可用
作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis mast ...
- Redis哨兵、复制、集群的设计原理与区别
一 前言 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转 ...
- redis 哨兵集群原理及部署
复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redi ...
随机推荐
- LinkedHashSet、Map、Map接口HashMap、Hashtable,TreeSet、TreeMap、如何选择使用集合实现类,Collections工具类
一.Set接口实现类LinkedHashSet 实现继承图: 1.LinkedHashSet的全面说明 1) LinkedHashSet是 HashSet的子类 2) LinkedHashSet底层是 ...
- 使用rsync+inotify实现/www目录实时同步
一.实现bak-server 1.1安装rsync # yum -y install rsync 1.2修改配置文件 # vi /etc/rsyncd.conf #添加下面内容 uid=test gi ...
- 基于双TMS320C6678 DSP的3U VPX的信号处理平台
一.板卡概述 板卡由我公司自主研发,基于3U VPX架构,处理板包含两片TI DSP TMS320C6678芯片:一片Xilinx公司的Spartan XC3S200AN 配置芯片: DSP之间通过 ...
- 前端框架 bootstrap 的使用
内容概要 前端框架 bootstrap 简介 引入方式 布局容器 栅格系统 图标 内容详细 简介 网址:https://v3.bootcss.com/ 版本: 2.X 3.X 4.X 推荐使用3.X版 ...
- 解决POI多线程导出时数据错乱问题
项目里有一个导出功能,但随着数据量大量上涨,导出时间长到不可忍受,遂重写此接口,多线程导出的代码并不复杂,每页有一条线程负责写入,利用线程池去调度,用countdownLatch保证在所有数据写完后再 ...
- opencv安装实录附十几行C++实现的一个人脸识别demo
前言: 之前写过一篇在nano上使用opencv,nano上默认是安装了opencv的库,除了nano,我们自己电脑上也想使用opencv做一些平时图像处理验证. 本来也是看一些资料安装好的,觉得也没 ...
- 「Python实用秘技06」逐行监听Python程序的内存消耗
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第6期 ...
- 【转】可见性、原子性和有序性问题:并发编程Bug的源头
如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里.换句话说,这块知识点其实对于程序员来说,是比较进阶的知识.我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及 ...
- DHCPv4协议测试——信而泰网络测试仪实操
一.DHCP简介 1. DHCP原理 DHCPv4概述 上网最基本元素 · IP地址 · 子网掩码 · 缺省网关 · DNS服务器 DHCP概述-手工配置 为什么需要自动分配,手工配置不行吗? · 答 ...
- 口碑最好的五款BI工具都在这了
目前,无论是大企业还是小企业,都面临着数字化转型的挑战.在这个过程中,BI工具起到了举足轻重的作用.市面上打着BI的旗号,实际却只是单纯数据工具的产品不少,客户在进行BI 选型时,眼花缭乱,不知所措. ...