温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis 中AOF和RDB的区别是什么

发布时间:2021-08-13 17:30:40 来源:亿速云 阅读:153 作者:Leah 栏目:大数据

这期内容当中小编将会给大家带来有关Redis 中AOF和RDB的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


Redis数据存储模式有2种:cache-only和persistence。

      如果想要Redis仅仅作为纯内存的缓存来用,那么可以使用cache-only模式。对于persistence持久化存储,Redis提供了两种持久化方法:RDB以及AOF。通过RDB或AOF,都可以将Redis内存中的数据给持久化到磁盘上,然后可以将这些数据备份到别的地方去,比如云服务器

RDB模式

      Redis主进程fork一个子进程(?),让子进程执行磁盘IO操作来进行持久化。RDB将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,这些数据文件代表了某一个时刻中redis的数据。但是RDB是间隔一段时间进行持久化的,如果持久化之间redis发生故障,这一段时间内的数据就会丢失(RDB最大的缺点,导致不适合做第一优先的恢复方案,如果你依赖RDB做第一优先恢复方案,会导致丢失比较多的数据)。

为什么是子进程?

      主要是出于Redis性能的考虑。

  • Redis RDB持久化机制会阻塞主进程,这样主进程就无法响应客户端请求。

  • Redis对客户端响应请求的工作模型是单进程和单线程的,如果在主进程内启动一个线程,这样会造成对数据的竞争条件,为了避免使用锁降低性能。基于以上两点这就是为什么Redis通过启动一个进程来执行RDB了。

AOF模式

        可以简单的认为AOF就是日志文件,此文件只会记录“变更操作”(例如:set/del等),将“操作 + 数据”以格式化指令的方式append(追加,顺序写磁盘,没有任何磁盘寻址的开销,因此效率非常高)到操作日志文件的尾部(一般设置每秒一次),在append操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更。“日志文件”保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。

但是AOF文件比RDB文件大,且恢复速度慢。

       若AOF文件过大,可以使用BGREWRITEAOF命令(BGrewriteAOF),优化aof文件

上述就是小编为大家分享的Redis 中AOF和RDB的区别是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI