redis 重新加载_Redis持久化和Redis持久化方式

Redis持久化是为了防止进程退出后数据丢失,主要分为RDB和AOF两种方式。RDB是快照形式,数据恢复速度快但可能丢失最近几分钟的数据;AOF记录每次操作,恢复时数据丢失少,但性能相对较低。在选择时,如果重视数据完整性,推荐AOF,而考虑性能则可选择RDB。
摘要由CSDN通过智能技术生成

1、啥是Redis持久化

持久化就是把内存中的数据存到硬盘中去,防止进程退出后数据丢失。

分析:redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再重启,内存里的数据将全部丢失。为防止上述问题发生,就得用 redis 的持久化机制,将数据写入内存的同时,异步的将数据写入磁盘文件里,进行持久化。

如果 redis 宕机重启,自动从磁盘上加载之前持久化的一些数据就可以了,也许会丢失少许数据,但是至少不会将所有数据都弄丢。

2、Redis持久化的两种方式。

1、RDB(Redis DataBase)持久化机制
对 redis 中的数据执行周期性的持久化。

2、AOF (Append-only file)持久化机制
AOF 机制将每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,
在 redis 重启的时候,可以通过回放 AOF 日志中的写入指令来重新构建整个数据集。

3、RDB介绍

3.1 原理及特点:

rdb功能的核心函数是rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数。

6f577196d7c262581fbb1f5af15f960c.png

RDB是把当前进程的快照数据保存到硬盘中,是二进制格式,有时会存在兼容问题。

Redis加载RDB来恢复数据,速度更快,而加载AOF会较慢。

RDB持久化是Redis默认的持久化方式。

无法做到实时持久化。RDB 数据快照文件,都是每隔 5 分钟生成一次,这个时候就得接受一旦 redis 进程宕机,那么会丢失最近 5 分钟的数据,如果想要在 redis 故障时,丢失数据量少,那么 RDB 没有 AOF 好。

4、AOF介绍

4.1 原理及优缺点

AOF功能的核心函数是 flushAppendOnlyFile

e1faf9bc57066a0d2c442370556abd7d.png

AOF 可以更好的保护数据不丢失,一般 AOF 会每隔 1 秒,通过一个后台线程执行一次fsync操作,最多丢失 1 秒钟的数据,而RDB却丢失5分钟的数据。

每当执行服务器任务时,flushAppendOnlyFile 函数都会被调用, 这个函数执行以下两个工作完成写入->保存:

WRITE:根据条件,将 aof_buf 中的缓存写入到 AOF 文件

SAVE:根据条件,调用 fsync 或 fdatasync 函数,将 AOF 文件保存到磁盘中。

5、使用如何选择

1、还原数据时,优先使用AOF。

2、AOF更安全也更大

3、RDB性能更好

4、如果计算机两个都配了优先加载AOF

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值