关于redis:赵强老师Redis的RDB持久化

43次阅读

共计 1031 个字符,预计需要花费 3 分钟才能阅读完成。

Redis 提供了多种不同级别的长久化形式:

  • RDB 长久化能够在指定的工夫距离内生成数据集的工夫点快照(point-in-time snapshot)。
  • AOF(Append-only file)长久化记录服务器执行的所有写操作命令,并在服务器启动时,通过从新执行这些命令来还原数据集。AOF 文件中的命令全副以 Redis 协定的格局来保留,新命令会被追加到文件的开端。Redis 还能够在后盾对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保留数据集状态所需的理论大小。
  • Redis 还能够同时应用 AOF 长久化和 RDB 长久化。在这种状况下,当 Redis 重启时,它会优先应用 AOF 文件来还原数据集,因为 AOF 文件保留的数据集通常比 RDB 文件所保留的数据集更残缺。
  • 你甚至能够敞开长久化性能,让数据只在服务器运行时存在。

一、RDB 的长久化

工作原理:每隔肯定工夫给内存照一个快照,将内存中的数据写入文件(rdb 文件)。这是 Redis 默认的长久化形式。当 redis 生成 dump.rdb 文件时,工作过程如下:

  • 当达到 RDB 生成条件时,redis 主过程 fork 一个子过程
  • fork 进去的子过程将内存的数据集 dump 到长期的 RDB 中
  • 当子过程对长期的 RDB 文件写入结束,redis 用新的 RDB 文件代替旧的 RDB 文件

配置参数如下:

RDB 示例测试:能够应用 redis-benchmark 进行压力测试,察看 RDB 文件大小的变动。

bin/redis-benchmark -n 100000  示意执行 100000 个操作 

二、RDB 的毛病:

在两次快照之间,如果产生断电,数据会失落。举例:在生成 rdb 后,插入新值。忽然断电,数据可能会失落。

三、监控 RDB:

Redis 监控最间接的办法当然就是应用零碎提供的 info 命令来做了,只须要执行上面一条命令,就能取得 Redis 零碎的状态报告。

bin/redis-cli info | grep rdb_
  • rdb_changes_since_last_save 表明上次 RDB 保留当前扭转的 key 次数
  • rdb_bgsave_in_progress 示意以后是否在进行 bgsave 操作,1 示意正在进行;0 示意没有进行
  • rdb_last_save_time 上次保留 RDB 文件的工夫戳
  • rdb_last_bgsave_time_sec 上次保留的耗时
  • rdb_last_bgsave_status 上次保留的状态
  • rdb_current_bgsave_time_sec 目前保留 RDB 文件已破费的工夫

正文完
 0