面试和工作 持久化都是重点
Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能!
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里
Redis会单独创建(fork)一个子线程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程时不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。我们默认的就是RDB,一般情况下不需要修改。
dump.rdb
vim redis.conf
60秒内操作5次就会产生一个快照文件dump.rdb
优点:
1.适合大规模的数据恢复 dump.rdb
2.对数据的完整性要求不高
缺点:
1.需要一定的时间间隔进行操作 如果redis意外宕机了 那么最后一次修改的数据就没有了
2.fork进程的时候 会占用一定的内存空间
有时候在生产环境 我们会将这个文件备份