Redis是如何实现高可用的?

因为以下四个特性所以实现了高可用

  • 数据持久化
  • 主从数据同步(主从复制)
  • Redis哨兵模式(Sentinel)
  • Redis集群(Cluster)
数据持久化

数据持久化保证了系统在发生宕机或者重启之后数据不会丢失
增加了系统的可靠性和减少了系统不可用的时间(省去了手动恢复数据的过程)

在Redis 4.0之前数据持久化方式有两种:
●RDB (Redis DataBase,快照方式)是将某一个时刻的内存数据,以二进制的方式写入磁盘,默认的保存文件为dump.rdb,优点是以二进制存储的,因此占用的空间更小.数据存储更紧凑,并且与AOF相比,RDB具备更快速的重启恢复能力
●AOF (Append Only File, 文件追加方式)是指将所有的操作命令,以文本的形式追加到文件中, 默认的保存文件为appendonly.aof,它的优点是存储频率更高因此丢失数据的风险就越低,并且AOF并不是以二进制存储的,所以它的存储信息更易懂
缺点是占用空间大,重启之后的数据恢复速度比较慢

混合持久化的功能指的是:
Redis可以使用RDB + AOF两种格式来进行数据持久化混合持久化的存储示意图如下图所示.
在这里插入图片描述

可以在redis客户端使用命令

127.0.0.1:6379> config get aof-use-rdb-preamble
1) "aof-use-rdb-preamble"
2) "yes"
127.0.0.1:6379> 

查看混合持久化是否开启

RDB和AOF各有利弊:
RDB具备更快速的数据重启恢复能力,并且占用更小的磁盘空间,但有数据丢失的风险
●AOF文件的可读性更高,但却占用了更大的空间,且重启之后的恢复速度更慢
于是在Redis 4.0就推出了混合持久化的功能

Redis混合持久化的存储模式:开始的数据以RDB的格式进行存储,因此只会占用少量的空间
并且之后的命令会以AOF的方式进行数据追加,这样就可以减低数据丢失的风险
同时可以提高数据恢复的速度.

主从数据同步(主从复制)

主从数据同步可以将数据存储至多台服务器,这样当遇到一台服务器宕机之后
可以很快地切换至另一台服务器以继续提供服务

主从同步是Redis多机运行中最基础的功能,它是把多个Redis节点组成-个Redis集群
在这个集群当中有一个主节点用来进行数据的操作,其他从节点用于同步主节点的内容
并且提供给客户端进行数据查询
在这里插入图片描述在这里插入图片描述
主从模式可以提高Redis的整体运行速度
因为使用主从模式就可以实现数据的读写分离,把写操作的请求分发到主节点上
把其他的读操作请求分发到从节点上,这样就减轻了Redis主节点的运行压力
并且提高了Redis的整体运行速度

使用主从模式还实现了Redis的高可用
当主服务器宕机之后,可以很迅速的把从节点提升为主节点
为Redis服务器的宕机恢复节省了宝贵的时间.
主从复制还降低了数据丢失的风险,因为数据是完整拷贝在多台服务器上的当一个服务器磁盘坏掉之后,可以从其他服务器拿到完整的备份数据.

哨兵模式

哨兵模式用于发生故障之后自动切换服务器
Redis集群提供了多主多从的Redis分布式集群环境
用于提供性能更好的Redis服务,并且它自身拥有故障自动切换的能力

缺点:当Redis的主节点宕机之后,必须人工介入手动恢复,那么到特殊时间段
比如公司组织全体团建或者半夜突然发生主节点宕机的问题,此时如果等待人工去处理就会很慢
这个时间是我们不允许的,并且我们还需要招聘专职的人来负责数据恢复的事
同时招聘的人还需要懂得相关的技术才能胜任这份工作.

在这里插入图片描述

在这里插入图片描述
哨兵的工作原理是每个哨兵会以每秒钟1次的频率
向已知的主服务器和从服务器,发送一个PING命令如果最后一次有效回复PING命令的时间
超过了配置的最大下线时间(Down-After-Milliseconds) 时,默认是30s
那么这个实例会被哨兵标记为主观下线.
如果一个主服务器被标记为主观下线,那么正在监视这个主服务器的所有哨兵节点
要以每秒1次的频率确认主服务器是否进入了主观下线的状态.
如果有足够数量(quorum配置值)的哨兵证实该主服务器为主观下线
那么这个主服务器被标记为客观下线.

Redis 集群在这里插入图片描述

Redis集群可以实现数据分片服务,也就是说在Redis集群中有16384个槽位用来存储所有的数据
当我们有N个主节点时,可以把16384个槽位平均分配到N台主服务器上
当有键值存储时,Redis 会使用crc16算法进行hash得到一个整数值
然后用这个整数值对16384进行取模来得到具体槽位
再把此键值存储在对应的服务器上,读取操作也是同样的道理

总结

数据持久化,保证数据不丢失
Redis两种模式:主从模式和从从模式
Redis哨兵模式,用来监控Redis主从模式,并提供了自动容灾恢复的功能
Redis集群,除了可以提供主从和哨兵的功能之外,还提供了多个主从节点的集群功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值