dump.rdb是由Redis服务器自动生成的。默认情况下,每隔一段时间Redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做dump.rdb的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动Redis服务器程序时Redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。

至于多久做一次SNAPSHOT,SNAPSHOT文件的路径和文件名,我们可以在redis的conf文件里指定:

900秒之内,如果超过1个key被修改,则发起快照保存
save 900 1 

# 300秒内,如果超过10个key被修改,则发起快照保存
save 300 10

# 1分钟之内,如果1万个key被修改,则发起快照保存
save 60 10000

Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的。当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件。这样在任何时候出现故障,Redis的RDB文件都总是可用的。

标签: none

添加新评论