redis不是有rdb和aof吗??为什么不具备持久性呢??

redis不是有rdb和aof吗??为什么不具备持久性呢??

redis不是有rdb和aof吗??为什么不具备持久性呢??

aof不是有日志吗?aof不是也可以设置成always吗??


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!rdb和aof是Redis持久化的两种方式,课程中老师讲解的是Redis事务不具备持久性,在AOF的"总是 SYNC "模式下,事务的每条命令在执行成功之后,都会立即调用fsync或fdatasync将事务数据写入到AOF文件。但是,这种保存是由后台线程进行的,主线程不会阻塞直到保存成功,所以从命令执行成功到数据保存到硬盘之间,还是有一段非常小的间隔,所以这种模式下的事务也是不持久的,因此说Redis事务不具备持久性。

祝:学习愉快!


  • 最后的魔法使 提问者 #1

    主线程不会阻塞直到保存成功,这句是咋理解哈??往硬盘保存数据成功??保存成功了为啥要阻塞redis的主线程??

    2021-02-26 20:35:01
  • 同学,你好!这与AOF的运作方式有关,同学可结合AOF的执行步骤理解一下

    1、Redis 执行 fork() ,同时拥有父进程和子进程

    2、子进程开始将新 AOF 文件的内容写入到临时文件

    3、对于所有新执行的写入命令,父进程一边将它们累积到一个内存缓存中,一边将这些改动追加到现有 AOF 文件的末尾

    4、当子进程完成重写工作时,它给父进程发送一个信号,父进程在接收到信号之后,将内存缓存中的所有数据追加到新 AOF 文件的末尾

    关于rdb和aof的更多内容,http://doc.redisfans.com/有详细讲解,同学可参考学习

    祝:学习愉快!

    2021-02-27 11:12:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师