redis缓存架构详解(二)-redis持久化-RDB持久化详解

2. redis持久化

接下来,我们讲解redis企业级的持久化方案。

2.1. redis持久化的意义

redis持久化的意义,在于故障恢复。

我们部署redis,作为cache缓存的同时,也可以保存一些较为重要的数据。如果redis没有持久化,redis遇到灾难性故障的时候,就会丢失所有的数据。

​ 通过持久化将数据备份一份到磁盘,然后定期同步和备份到一些云存储服务上去,当redis服务器出现灾难时,就可以从云存储上拉取数据,恢复到新的redis缓存中,保证数据不丢失全部,能恢复一部分数据。

如下图,redis持久化的意义:

在这里插入图片描述

​ 企业级的redis集群架构,支撑海量数据、高并发、高可用,而持久化功能提供的灾难恢复,数据恢复,为redis集群架构的高可用提供有力保障。

​ 当redis整个集群架构挂了,redis就不可用,我们要让redis尽快恢复,提供服务。

​ 1、redis没有做持久化,重启redis后,也不可用,因为没有数据。就会导致大量的请求过来,缓存全部无法命中,就会直接去访问数据库,导致缓存雪崩问题。

​ 2、 redis做了持久化,具备缓存的备份和恢复方案,那么即使redis故障了,也可以通过备份数据,快速恢复,一旦恢复立即对外提供服务。

redis中的数据受内存大小限制,存放数据的量不是无限增长,到一定时间,redis会通过缓存淘汰算法LRU,自动将一部分数据从内存中给清除。     

redis的持久化与系统的高可用是有直接关系。redis持久化主要有RDB,AOF两种方式。

2.2. RDB持久化

2.2.1. RDB原理

RDB 的全称是 Redis database. 顾名思义,RDB 就是将 Redis 数据库,用来存储数据的,所以通过RDB方式持久化,就是将存在Redis内存中的数据周期性的写入到 RDB文件中保存到磁盘上,从而实现持久化的。

​ 既然RDB机制是通过把某个时刻的所有数据生成一个快照来保存,那么就应该有一种触发机制,是实现这个过程。对于RDB来说,提供了三种机制:save、bgsave、自动化。我们分别来看一下

2.2.2. redis生成RDB文件的触发机制

1、 save触发方式

​ 该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值