Redis学习系列三:Redis的持久化

目录

RDB

AOF


Redis支持RDB和AOF两种持久化机制。

RDB

(1)Redis的RDB持久化机制,其实是指在指定的时间间隔内将内存中数据集快照写入磁盘。实际上,就是fork一个子进程,先将数据集写入临时文件中,写入成功后,替换之前生成的文件,以二进制压缩的方式存储。

(2)RDB是Redis的默认持久化机制,其会在默认的目录下生成一个dump.rdb的文件,重启时会通过加载dump.rdb文件来恢复数据。

(3)RDB作为Redis默认的持久化机制,其分为手动和自动两种机制。

自动机制:Redis启动初始化一个定时函数,每隔一段时间执行一次bgsave,将内存中的数据dump到硬盘。

手动机制:save命令和bgsave命令两种。

save命令会阻塞当前Redis的主线程,直至持久化完成,在生产环境不建议使用;

bgsave命令会让Redis进程fork出一个子进程,子进程来进行数据的持久化,阻塞时间很短。

(4)RDB的优势:

一旦采用了RDB机制,Redis数据库只有一个文件dump.rdb,方便持久化;

容灾性好,方便备份存储,可以将rdb文件保存至其他安全的存储介质上;

当遇到大数据集时,Redis的RDB机制相比较AOP机制而言,其恢复速度更快;

保证了性能最大化,fork出一个子进程来进行持久化操作,主进程不会进行任何IO操作,从而保证了Redis的高性能。

(5)RDB的缺点:

数据安全性偏低,因为RDB机制是间隔一定时间进行持久化,若是持久化期间发生了故障,则会丢失数据,所以其适宜用于数据安全性要求不是很高的场合;

服务暂停,RDB机制是通过fork出一个子进程来执行数据的持久化的,所以当数据库比较大的时候,可能会造成服务停止几百毫秒。

AOF

(1)Redis的AOP持久化机制,是以日志的形式记录服务器所处理的每一个写操作。AOF采用日志的形式记录每一个写操作,并追加到文件中。Redis重启时,会根据日志文件的内容将写操作从前向后执行一遍,以完成数据的恢复。

(2)AOF:开启Redis的AOF持久化机制:appendonly yes,AOF文件名通过:appendfilename ‘appendonly.aof’设置,默认文件名即为appendonly.aof。

(3)AOF的优势:

数据安全性更高,AOF机制可以根据需要设置不同的fsync策略:比如:appendfsync no(无fsync)/appendfsync everysec(每秒钟一次fsync)/appendfsync always(每次执行写入命令时fsync)

(4)AOF的缺点

如果采用AOF机制,其文件会比dump.rdb文件大,恢复速度相比较慢,当数据集比较大时,其比RDB启动效率低;

根据不同的同步策略,AOF在运行效率上往往会慢于RDB机制。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值