Redis系统学习之持久化(RDB)

Redis持久化

主要还是为了对付面试吧~

Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦宕机,或者redis进程挂掉,服务器中的数据库状态也会消失,所以Redis提供了持久化功能!

RDB(Redis DataBase)

  • 什么是Rdb?
  • image.png
  • 在指定的时间间隔内,将内存中的数据集快照写入磁盘,也就是快照,他恢复时是直接将快照加载到内存,类似于VM的快照,就是时间线中的一个点
  • Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入一个临时文件中,等持久化过程都结束了,在用这个 临时文件替换上一个持久化文件也就是快照文件,整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模的数据恢复,且对于数据恢复的完成性不是很敏感,那么RDB方式要比AOF更加高效,RDB的缺点就是最后一次持久化到宕机期间的数据可能会丢失.
  • 一般情况下,默认使用使用DRB就可以了,不需要修改;
  • rdb保存的文件名称为 dump.rdb,在上面的配置文件中有看到过
  • image.png
  • 如何恢复rdb文件
  • 将dump.rdb放入到dump.rdb的指定位置就可以了,在redis启动的时候会自动读取,位置和名字可以在配置文件中查看,具体在那个位置,看上面面面的,配置文件详解->快照配置(持久化配置)
  • RDB的优缺点(来自小姐姐的面试题67)
  • RDB:Redis DataBase
  • 在指定时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后再替换之前的文件,用二进制压缩存储。
  • 优点
    • 整个redis数据库将只包含一个文件dump.rdb,方便持久化
    • 容灾性好,方便备份
    • IO最大化,使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证redis的性能
    • 相对于数据集大时,比AOF启动效率高
  • 缺点
    • 数据安全性低,RDB间隔一段时间进行持久化,若期间redis发生故障,则数据丢失,适合数据要求不严谨的时候。
    • 当数据集较大时,子进程会持续占用cpu资源,可能会导致整个服务器停止几百毫秒甚至1秒。

作者:彼岸舞

时间:2021\05\05

内容关于:Redis

本文属于作者原创,未经允许,禁止转发

posted @ 2021-05-05 10:56  彼岸舞  阅读(82)  评论(0编辑  收藏  举报