Redis数据库(四)哨兵和集群
目录
一、Redis高可用
1、主从复制
①概念
②作用
③流程
2、哨兵(至少三台redis)
①概念
②作用
③结构
④故障转移机制
⑤主节点选举
3、集群(推荐至少6台redis)
①简介
②作用
③集群模式的数据分片
④新master加入
二、主从复制部署
1、环境
2、master节点配置
3、 slave节点配置
4、验证主从
三、哨兵部署
1、在主从的基础上配置哨兵
2、启动哨兵
3、持续查看哨兵信息
4、模拟故障
四、Redis集群部署
1、配置6个redis服务
2、修改配置文件
3、启动节点
4、启动集群
5、集群测试
一、Redis高可用
在Redis中实现高可用的技术主要有持久化、主从复制、哨兵和集群
1、主从复制
主从复制是Redis高可用的基础,哨兵和集群都是在主从复制的基础上实现的。主从复制主要实现了数据的舵机备份以及对于读操作的负载均衡和简单的故障恢复。但还是有极大的限制:故障恢复无法自动化;写操作无法负载均衡;存储能力受单机性能的限制。
①概念
主从复制是指将一台Redis服务器的数据复制到其他的Redis服务器(主从节点)数据的复制只能由主节点到从节点,是单向的。默认情况下,每台Redis服务器都是主节点且每一个主节点可有多个或者没有从节点,但是每一个从节点只能有一个主节点。
②作用
由主从复制实现了数据的热备份,是持久化以外的一种数据冗余方式。当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复(实际上是一种服务器的冗余)。在主从复制的基础上,配合读写分离,可以由主节点提供写服务,从节点提供读服务,分担服务器的负载,尤其在写少读多的情况下,通过多个从节点分担读负载可以大大提高Redis服务器的并发量。
③流程
开启redis服务,从服务器向主服务器发送SYNC同步请求。主服务器会fork一个子进程产生一个RDB文件(客户端仍旧写入新命令)。RDB文件持久化完成后,主服务器会将RDB文件和缓存起来的命令推送给从服务器。
2、哨兵(至少三台redis)
在主从复制的基础上,哨兵实现了自动化的故障恢复。
缺陷:写操作无法负载均衡;存储能力依然受单机性能的限制。
①概念
哨兵是一个分布式系统,用于对主从结构种的每台服务器进行监控。在主从复制的基础上,哨兵引入了主节点的自动故障转移,当出现故障时通过投票是否离线来选择新的master节点并将所有slave连接到新的master。
②作用
哨兵会不断地检查主节点和从系欸但是否正常。当主节点不能正常工作时哨兵会开始故障转移操作,通过将一个从节点升级为新的主节点并将原从节点指向新master,同时可以将故障转移结果发送给客户端。
③结构
哨兵由两部分组成:哨兵节点和数据节点。由一个或多个哨兵节点组成一个哨兵系统,不储存数据。主节点和从节点都是数据节点。
④故障转移机制
由哨兵节点定期监控主节点是否发生故障。每个哨兵节点每隔1s向主节点、从节点以及其他烧饼节点发送一个ping命令做一次心跳检测,如果主节点在一定时间范围内不回复或者时回复一个错误信息,那么就认为这个主节点主观下线。当超过半数的哨兵节点认为该主节点主观下线,则视为该主节点客观下线。此时哨兵节点会通过Raft算法实现选举机制共同选举出一个哨兵节点为leader来负责处理主节点的故障转移和通知。
需要注意的是客观下线是主节点才有的概念,如果从节点和哨兵节点发生故障,被哨兵主观下线后不会再有后续的客观下线和故障转移操作。
⑤主节点选举
过滤掉不健康的、没有回复哨兵ping响应的从节点;选择配置文件中从节点优先级配置最高的;选择复制偏移量最大,复制最完整的从节点。
3、集群(推荐至少6台redis)
通过集群,Redis解决了写操作无法负载均衡以及存储能力受单机限制的问题,是一个较为完善的高可用方案。
①简介
redis集群模式是一个可以解决写的操作无法负载均衡、存储受单机限制以及故障自动切换功能的一个集群。由多个节点组成,redis的数据分布在这些节点中。节点分为主节点和从节点,只有主节点复制读写请求和集群信息的维护,从节点只进行主节点数据和状态信息的复制。
②作用
数据分区(分片)是居群最核心的功能。
集群将数据分散到多个系欸但,一方面突破了redis单机内存大小的限制,存储容量大大增加,另一方面每个主节点都可以对外提供读写服务,提高了集群的响应能力。
③集群模式的数据分片
redis集群引入了哈希槽的概念,每个集群由16384个哈希槽(编号0-16383),集群中的每个节点负责一部分哈希槽。每个key通过CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值去找对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。
总的来说就是集群是分布式的,它可以将多个master当作一个整体来存放数据并且集群中由16384个哈希槽,集群中的master来平分这些槽位。当需要由数据来存储到集群中时,需要使用CRC16算法得出一个结果再将这个结果对16384取余,最后得到对应的曹魏,根据槽位选定最顶存放的master节点。
④新master加入
如果有新的master节点加入,集群会将现有的每一个哈希槽移除一部分,使得新节点加入后仍可以均分。
二、主从复制部署
1、环境
master 192.168.10.101
slave1 192.168.10.102
slave2 192.168.10.103
准备好redis服务
2、master节点配置
监听所有网段。
开启持久化。
其他配置与(二)相同。
重启服务。
3、 slave节点配置
添加主服务器ip和端口。
重启服务。
4、验证主从
在master节点创建一个新键
日志变化
从节点变更
三、哨兵部署
1、在主从的基础上配置哨兵
所有节点上配置
vim /opt/redis-5.0.7/sentinel.conf
关闭保护模式
指定sentinel后台启动
指定日志存放路径
指定数据库存放路径
指定主节点,名称mymaster,需要至少2个哨兵节点同意才能判定主节点客观下线。
判定服务器down的时间周期,默认3w毫秒也就是30s
故障节点的最大超时时间为18w毫秒,即180s
2、启动哨兵
查看哨兵信息
redis-cli -p 26379 info sentinel
3、持续查看哨兵信息
watch -n 1 redis-cli -p 26379 info sentinel
4、模拟故障
关闭master的redis服务。
master跳转到192.168.10.102节点。
四、Redis集群部署
以一台虚拟机模拟三主三从合计6台服务器
1、配置6个redis服务
2、修改配置文件
注释,表示监听所有端口
关闭保护模式
根据之前设置的更改端口
开启守护进程
开启AOF持久化
开启集群功能
集群名称文件设置
集群超时时间设置
3、启动节点
分别进入6个节点启动服务
4、启动集群
成功启动
5、集群测试
redis-cli -p 6001 -c
-c 节点之间可以相互跳转
cluster slots
查看节点的哈希槽编号范围
cluster keyslot 键名
查看键的哈希槽编号
每组分别一主一从
Redis数据库(四)哨兵和集群相关推荐
- Redis 主从复制、哨兵和集群区别
转自:Redis 主从复制.哨兵和集群区别,更优体验:http://www.kongzid.com/ 目录 1.主从复制(Replication) 1.1 主从数据库 1.2 主从复制的特点 1.3 ...
- redis主从、哨兵、集群概念
关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...
- redis主从、哨兵、集群
redis概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级.二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据 ...
- Redis主从复制、哨兵、集群
目录 一.redis概念 1.redis集群模式 主从复制 哨兵 集群Cluster 2.Redis群集 二.Redis主从复制 1. 主从模式 2.主从复制流程 3.redis配置 验证主从效果 三 ...
- NoSQL(3) 之Redis主从复制、哨兵和集群介绍及详细搭建步骤
文章目录 一.主从复制 1.1 主从复制的概念 1.2 主从复制的作用 1.3 主从复制的流程 1.4 部署Redis 主从复制步骤 1)首先要搭建redis,在之前的博客写过, 具体可参考:NoSQ ...
- SpringBoot 整合Redis 单机、哨兵、集群
<!--springboot整合redis--><dependency><groupId>org.springframework.boot</groupId& ...
- redis复制、哨兵、集群详细介绍
目录 1.redis性能瓶颈在哪里? 2.redis为什么需要高可用? 3.主从复制 3.1.主从复制原理 3.1.1.复制初始化 3.1.2.复制同步阶段 3.1.3.增量复制 3.1.4.无硬盘复 ...
- Redis主从、哨兵、集群原理
1. 前言 大家好,我是捡田螺的小男孩.今天跟小伙伴们一起学习Redis的主从.哨兵.Redis Cluster集群. Redis主从 Redis哨兵 Redis Cluster集群 1.Redis ...
- Redis主从、哨兵及集群搭建
1.主从复制 目的:读写分离,主写,从读,容灾的快速恢复 主从复制原理: Slave 启动成功连接到master后会发送-个sync命令. Master 接到命令启动后台的存盘进程,同时收集所有接收 ...
- redis—主从,哨兵,集群
redis常见的使用方式 Redis的几种常见使用方式包括: Redis单副本; Redis多副本(主从) ; Redis Sentinel (哨兵) ; Redis Cluster; Redis自研 ...
最新文章
- Android10.0 Binder通信原理(八)-Framework层分析
- 【Java学习笔记三】抽象类与接口
- java激励_激励干个人java的不足之处
- fs hadoop 压缩_Hadoop 压缩图文教程
- 智能计米器jk76怎么安装_春节智能锁消费指南:只看价格的后果有多严重?
- python画彩色螺旋线_Python turtle 绘制彩色螺旋线
- NLP学习—11.实现基于PyTorch与LSTM的情感分类
- 计算机软件图标不正常,电脑桌面软件图标显示异常
- 从数据预处理开始,用最简单的3D的CNN实现五折交叉验证的MRI图像二分类(pytorch)
- AI公开课:人工智能领域之AI+制造行业之《人工智能+制造(智能制造)产业发展的现状/影响/+互联网、未来展望》课堂笔记
- 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现
- pytorch第06天 图片分类器
- 卷积神经网络架构不包含,卷积神经网络架构分析
- 火焰图片和视频数据集
- 用懊悔法学习吴恩达机器学习【2】-----线性回归的梯度下降
- Termux安装Linux及图形化教程
- 一文看懂VPS、原生IP、住宅IP有什么不同
- mdp文件-Chapter2-NVT.mdp
- zabbix学习系列之QQ消息报警
- 一键多值的Map~~