Redis持久化之RDB操作
面试和工作,持久化都是重点!
Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦出现服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能!
RDB(Redis DataBase)
Redis会淡出创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束时,再用这个临时文件替换上次持久化的好的文件。整个过程,主进程不进行任何IO操作,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对数据恢复的完整性不是非常敏感,RDB方式要比AOF方式更加高效,RDB的缺点就是可能会丢失最后一次持久化后的数据。
rdb保存的文件是 dump.rdb,可以在配置文件中配置
触发机制
- save的规则满足的条件下
- 执行flushall
- 退出redis
恢复rdb文件数据
只需要将rdb文件放在配置文件中的rdb配置目录,启动redis时,会自动检查dump.rdb恢复其中的数据
查看需要存在的位置
如何恢复rdb文件!
1、只需要将rdb文件放在我们redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据!
2、查看需要存在的位置
127.0.0.1:6379> config get dir
1) "dir"
2) "/usr/local/bin" # 如果在这个目录下存在 dump.rdb文件,启动就会自动恢复其中的数据
几乎就它自己默认的配置就够用了,但是我们还是需要去学习!
优点:
- 适合大规模的数据恢复!dump.rdb
- 对数据的完整性不高
缺点:
- 需要一定的时间间隔进程操作!如果redis意外宕机了,这个最后一次修改的数据就没有了
- fork进程的时候,会占用一定的内存空间!