Redis|持久化

文章目录

总体介绍

  • 持久化双雄:
    • RDB(Redis DataBase):RDB 是 Redis 默认的持久化方式,它通过生成数据集的快照(snapshot)来保存数据。RDB 文件是一个经过压缩的二进制文件,包含了某个时间点 Redis 数据库中的所有数据。
    • AOF(Append-Only File):AOF 持久化通过记录每个写操作来保存数据。AOF 文件是一个追加写入的日志文件,记录了 Redis 执行的所有写命令。在 Redis 重启时,可以通过重新执行 AOF 文件中的命令来恢复数据。

RDB(Redis DataBase)

官网介绍

  • RDB (Redis 数据库):RDB 持久化以指定的时间间隔执行数据集的时间点快照。
  • 在指定的时间间隔,执行数据集的时间点快照。
  • 实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照。这样一来即使故障宕机,快照文件也不会丢失,数据的可靠性也就得到了保证。
  • 这个快照文件就称为 RDB 文件(dump.rdb),其中,RDB 就是 Redis DataBase 的缩写。
  • 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 snapshot 内存快照,它恢复时再将硬盘快照文件直接读回到内存里。
  • Redis 的数据都在内存中,保存备份时它执行的是全量快照,也就是说,把内存中的所有数据都记录到磁盘中,一锅端。
  • RDB 保存的是 dump.rdb 文件。

案例演示

  • RDB 保存到磁盘的文件叫 dump.rdb

  • Redis 6.0.16 及以下:

  • Redis 6.2 以及 Redis 7.0.0:
  • 操作步骤:
  • 自动触发:
  • Redis7 版本,按照 redis.conf 里配置的 save <seconds> <changes>
  • 本次案例5秒2次修改,save 5 2 的意思是,如果在 5 秒内发生了 2 次写操作(如 SET 或 DEL),则会触发 RDB 保存。在 5 秒内发生至少 2 次修改,就会触发保存快照。如果在 5 秒内发生了 3 次修改,它满足了这个条件,因此快照会被保存。即使超过了 2 次修改,只要满足时间窗口和修改次数的条件(这里是 5 秒内 2 次修改),快照就会触发。
  • 修改 dump.rdb 文件的保存路径
  • 修改 dump.rdb 文件名称
  • 触发备份
  • 第一种情况,5 秒内保存 2 次
  • 第二种情况,两次保存间隔超过5秒
  • Redis 启动或者 RDB 快照完成,开始计时,期间 Redis 会记录发生写操作的次数。超过了 <seconds> 后,Redis 会统计这段时间里达到修改次数,满足 <changes> 次,会自动触发,每个时间间隔内只会触发一次

  • 我看推测配置文件注释描述的应该是距离上次更新超过了 <seconds> 后,Redis 会统计这段时间里达到修改次数,如果满足 <changes> 次数,会自动触发

  • 如何恢复:

    • 将备份文件(dump.rdb)移动到 Redis 安装目录并启动服务即可
    • shutdown 命令模拟服务器宕机时,最后那次关机 redis 马上会把当前的快照保存一次,保证跟上一次一致,尽量使其最新
    • 备份成功后故意用 flushdb 清空 redis,看看是否可以恢复数据?执行 flushall/flushdb 命令也会产生 dump.rdb 文件,但里面是空的,无意义
    • 物理恢复,一定要将服务产生的有数据的 RDB 文件备份一份,然后分机隔离,避免生产上物理损坏后备份文件也挂了
  • 手动触发:

优势

劣势

相关推荐
这个DBA有点耶1 小时前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182621 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹2 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿2 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪2 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛2 小时前
导出mysql数据结构
数据库·mysql
GlobalTradercrb2 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo
PingCAP3 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
花间相见3 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin3 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库