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