本文主要是介绍redis rbd与aof区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Redis的持久化机制包括RBD和AOF两种,对于这两种持久化方式各有优势,本文将对此进行介绍。
https://blog.csdn.net/baidu_32872293/article/details/78174330
RDB机制的策略
RDB持久化是指在指定的时间间隔内将内存中的数据和操作通过快照的方式保存到redis bin目录下的一个默认名为 dump.rdb的文件,可以通过配置设置自动的快照持久化的方式,我们可以配置redis在n秒内进行快照的时间,如果超过这个时间节点,将会自动执行快照操作。虽然这种方式方便快捷,但是无法保证数据的绝对安全可靠,如果服务器在非备份时间跨度内发生了故障,无法做到对当前状态的实时保存,导致数据丢失。而且每次保存 RDB文件时, Redis都需要 fork()出一个子进程,由子进程来执行具体的持久化工作,对资源消耗较大。——最大缺点
AOF机制的策略
redis 的 AOF 持久化是在每次接受到的写命令通过 write函数追加到文件中(默认是 appendonly.aof),但是由于操作系统在写入文件时使用了缓存来提高写入效率,还是可能会出现因服务器突然故障而导致的数据丢失,故我们可以通过配置文件告诉redis我们同步数据的时间间隔(默认间隔是每秒同步一次)
AOF 的速度可能会慢于 RDB 。——最大缺点;也是RBD的优点
在一般情况下, 每秒 fsync 的性能依然非常高——折中方案,数据安全与访问性能折中, 而关闭 fsync 可以让 AOF 的速度和 RDB 一样快, 即使在高负荷之下也是如此。
个人小结:
rbd 优点:访问性能最佳 缺点:数据不安全、fork消耗极大
aof 优点:数据相对安全 缺点:访问性能相对不在最佳
这篇关于redis rbd与aof区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!