在使用redis时,在dump.rdb 文件同目录下出现了temp-xxx.rdb文件怎么回事?

当redis触发rdb的持久化之后,如果内存中的redis数据太大,会临时存储到temp-pid.rdb文件,最后再从temp-pid.rdb文件copy到你redis设置的rdb持久化文件中。

查看redis进程

$  ls -l   /proc/$(pidof redis-server)/cwd

RDB 是基于时间的快照,只保留当前最新的一次快照。

 优点:执行的速度比较快

  缺点:可能丢失数据(从上次快照到当前快照未完成之间的数据)

RDB 实现数据备份的过程:

 1.redis 从主进程中先fork 一个子进程,采用写时复制机制

 2.子进程将内存中的数据保存为一个临时文件,dump.rdb.temp,当数据保存完成之后再将上次保存的RDB 文件替换掉

 3.关闭子进程

说明:  如果直接替RDB 文件的时候就可能会出现突然断电等问题而导致RDB 文件还么有保存完整就突然关机,从而导致数据的丢失,可以手动将每次生成的RDB 文件进行备份,这样可以最大化保存历史数据。

参考

Two rdb files in /var/lib/redis dir

https://stackoverflow.com/questions/54824752/two-rdb-files-in-var-lib-redis-dir

How to save only one database in Redis?

https://stackoverflow.com/questions/44370279/how-to-save-only-one-database-in-redis

Redis Persistence

https://redis.io/topics/persistence

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐