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