Redis持久化

网友投稿 627 2022-05-28

Redis有2种持久化策略: RDB和AOF。

RDB是Redis默认的持久化策略,这种策略是把数据库的快照以二进制形式的副本保存在磁盘上。

RDB持久化触发条件

SAVE命令: 当客户端执行SAVE命令时,会阻塞Redis主线程进行数据持久化,直到持久化完成。Redis在阻塞期间不能处理客户端的请求。

BGSAVE命令: 当客户端执行BGSAVE命令时,Redis会fork一个子进程进行数据持久化,因此并不会阻塞Redis服务。

FLUSHALL命令: 当客户端执行FLUSHALL命令时,会清空Redis所有数据库的数据,并且也会触发数据同步。

save配置: Redis会按照配置文件中的save配置的条件进行数据同步,一旦满足条件,就会执行BGSAVE命令,即fork一个子进程进行同步。

Redis持久化

shutdown: 当Redis服务关闭时,也会将数据同步到磁盘,以便下次启动时恢复。

RDB的优点:

文件体积小,恢复大数据较快

最大化Redis性能: Redis会fork出子进程进行数据同步,并不影响Redis的性能。

RDB的缺点:

数据安全性较低: 如果不显示的执行SAVE命令,那么Redis隔一段时间才会同步数据,可能会造成一定程度的数据丢失。

AOF策略是把已经执行过的命令以文本的方式追加到AOF文件的末尾,以此达到记录数据库状态的目的。 AOF默认情况下是关闭的,当配置选项 appendonly 设置为yes后才会进行AOF的持久化。

appendfsync指定了AOF的同步策略,它有三个可选值。

no: no代表Redis不亲自持久化,而是通过系统调用write函数每隔一段时间将数据写入文件。 这种情况下如果服务器发生故障,可能会有数据还没来得及同步就丢失了。

always: always表示Redis每次执行写操作都会将数据同步到文件中。 这种策略虽然保证了数据的安全性,但是对Redis的性能会有影响。

everysec: everysec是AOF默认的持久化策略,这种策略下, 系统每一秒都会将数据写入文件,兼顾了性能和数据安全性。

AOF优点:

数据安全性较高,秒级丢失

AOF缺点:

文件体积大,恢复大数据较慢

两种持久化方式各有优缺点,可以选择混合的方式进行备份。 混合持久化后,文件的内容大部分都是RDB格式的,恢复起来较快, 以AOF的方式同步也能保证数据的安全性。

Redis 数据复制服务 DRS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java代理模式
下一篇:Qt入门系列开发教程【基础控件篇】QSpinBox旋转框
相关文章