Redis的数据持久化
2024-01-02 22:03:19
一.概念
可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。Redis 的数据存储在内存中,内存是瞬时的,如果系统宕机或重启,又或者Redis崩溃或重启,所有内存数据都会丢失。为解决这个问题,Redis提供两种机制对数据进行持久化存储,以便发生故障后能迅速恢复数据。
二.方式
- RDB:redis database backup file,是 redis 默认的持久化方式
- AOF:append of file
(1)RDB
RDB快照记录的是某一时刻的内存数据写入到硬盘上,全量快照
如何使用RDB
提供了两个命令来生成RDB文件,save
和bgsave
,区别在于后者是后台运行的,可以避免主线程的阻塞
(2)AOF
AOF日志文件记录的是内容操作的命令
AOF记录日志命令是先执行写完命令后再记录该命令到日志里
如何使用AOF
在 Redis 中 AOF 持久化功能默认是不开启的,需要我们修改 redis.conf
配置文件中的以下参数:
appendonly yes //表示是否开启AOF持久化
appendfilename "appendonly.aof" // AOF持久化文件名称
好处
a.不会添加额外的开销
b.不会阻塞写命令的运行
三种写回策略的对比
重写机制
当redis运行时长长,写操作多的话AOF日志文件就会大,所以redis有这个重写机制。
会重新弄一份AOF日志,对reids所用已存在的数据写一份数据,格式为set key value
写完后就可以覆盖原来的AOF日志,大大减少了AOF日志文件的大小,同时如果失败了,也不会对原来的AOF日志产生影响
习题
1.关于Redis的持久化,下列描述错误的是?
A RDB是以快照的形式,将内存中的数据整体拷贝到硬盘上
B AOF是以日志形式,将内存中的数据整体拷贝到硬盘上
C AOF操作的实时性好,但是产生的数据体积大,数据的恢复速度慢
D 执行RDB存储时会产生阻塞,因此RDB不适合实时备份,而适合定时备份
选B,因为它并不是实时地将数据整体拷贝到硬盘上,通常情况是一条条指令写入
ps: 以上部分图源自小林图解
文章来源:https://blog.csdn.net/m0_51547272/article/details/135348610
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!