Redis学习总结(17)——Redis 持久化和过期机制复习

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 文件有多个部分,包括握手字段

你可能感兴趣的:(Redis,Redis持久化,Redis,过期机制,redis,数据库,linux)