RDB

RDB 是 Redis 持久化的第一种方式。有两个 Redis 命令可以用于生成 RDB 文件,一个是 SAVE,另一个是 BGSAVE。SAVE 会阻塞
Redis 服务器进程,执行时 Redis 服务器会阻塞所有客户端发送的命令。
redis> SAVE OK
BGSAVE 会派生出一个子进程执行,执行时仍可继续处理客户端的命令,但会拒绝客户端 SAVE 和 BGSAVE 的命令,延迟 BGREWRITEAOF
命令。
redis> BGSAVE Background saving started
执行条件

SAVE 命令会阻塞服务器,所以只能手动执行。BGSAVE 可以在不阻塞的情况下执行,所以可以配置 save
选项让服务器每隔一段时间自动执行一次。比如我们可以向服务器提供以下配置:
save 900 1 save 300 10 save 60 10000
那么只要满足以下三个条件中的任意一个即可被执行:

* 服务器在 900 秒之内对数据库进行了至少 1 次修改。
* 服务器在 300 秒之内对数据库进行了至少 10 次修改。
* 服务器在 60 秒之内对数据库进行了至少 10000 次修改。
为了实现这一功能,服务器会维持一个记录距离上次保存之后修改的次数的 dirty 计数器和一个记录上次保存时间的 lastsave 属性。周期操作函数
serverCron 默认每个 100 毫秒就会执行一次,它的其中一项工作就是检查 save 选项设置的条件是否满足,如果满足的话就会执行 BGSAVE 命令。

文件内容

RDB 文件有多个部分,包括握手字段

技术
©2019-2020 Toolsou All rights reserved,
Django个人博客搭建教程---时间分类归档你不知道的鸿蒙——HarmonyOS记录一次游戏私服getshell过程mysql联合索引详解百度网盘偷偷更新,终于实现免费不限速了! 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享uniapp页面传值总结Android中获取当前正在显示的Activity实例SQL Server 数据库词汇表Python垃圾回收与内存泄露