MST
星途 面试题库

面试题:Redis RDB持久化中内存快照技术的触发时机有哪些

请详细阐述在Redis RDB持久化过程中,内存快照技术会在哪些情况下被触发开始执行?
29.5万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

在Redis RDB持久化过程中,内存快照技术会在以下几种情况下被触发开始执行:

  1. 配置文件中的save条件满足时:在Redis的配置文件(redis.conf)中,可以通过save参数设置触发RDB快照的条件。例如,save 900 1表示如果在900秒内至少有1个键被修改,save 300 10表示如果在300秒内至少有10个键被修改,save 60 10000表示如果在60秒内至少有10000个键被修改,当这些条件满足时,就会触发RDB快照。
  2. 执行SAVE命令时:手动在Redis客户端执行SAVE命令,该命令会阻塞Redis服务器进程,直到RDB快照完成。在这个过程中,服务器不能处理其他任何命令,直到快照操作结束。
  3. 执行BGSAVE命令时:执行BGSAVE命令会派生出一个子进程,由子进程负责进行RDB快照操作,而父进程继续处理客户端请求。这样可以避免阻塞服务器,保证Redis在快照过程中仍能正常服务。
  4. 执行SHUTDOWN命令时:当执行SHUTDOWN命令关闭Redis服务器时,如果开启了RDB持久化(默认开启),会触发一次RDB快照操作,确保在关闭服务器前将当前数据保存到磁盘,以便下次启动时能够恢复数据。
  5. 执行FLUSHALL命令时:当执行FLUSHALL命令清空Redis数据库时,如果开启了RDB持久化,也会触发一次RDB快照操作,将清空后的空数据库状态保存下来。