当前位置: 首页 > article >正文

一文讲解Redis中的混合持久化

一文讲解Redis中的混合持久化

在 Redis 中,RDB 持久化是通过创建数据的快照来保存数据的,而 AOF 持久化则是通过记录每个写入命令来保存数据的。

两种方式各有优缺点。RDB 持久化的优点是恢复大数据集的速度比较快,但是可能会丢失最后一次快照以后的数据。AOF 持久化的优点是数据的完整性比较高,通常只会丢失一秒的数据,但是对于大数据集,AOF 文件可能会比较大,恢复的速度比较慢。

在 Redis 4.0 版本中,混合持久化模式会在 AOF 重写的时候同时生成一份 RDB 快照,然后将这份快照作为 AOF 文件的一部分,最后再附加新的写入命令。

三分恶面渣逆袭:混合持久化三分恶面渣逆袭:混合持久化

这样,当需要恢复数据时,Redis 先加载 RDB 文件来恢复到快照时刻的状态,然后应用 RDB 之后记录的 AOF 命令来恢复之后的数据更改,既快又可靠。

如何设置持久化模式?

可以通过编辑 Redis 的配置文件 redis.conf 来进行设置,或者在运行时通过 Redis 命令行动态调整。

RDB 持久化通过在配置文件中设置快照(snapshotting)规则来启用。这些规则定义了在多少秒内如果有多少个键被修改,则自动执行一次持久化操作。

save 900 1      # 如果至少有1个键被修改,900秒后自动保存一次
save 300 10     # 如果至少有10个键被修改,300秒后自动保存一次
save 60 10000   # 如果至少有10000个键被修改,60秒后自动保存一次

AOF 持久化是通过在配置文件中设置 appendonly 参数为 yes 来启用的:

appendonly yes

此外,还可以配置 AOF 文件的写入频率,这是通过 appendfsync 设置的:

appendfsync always    # 每次写入数据都同步,保证数据不丢失,但性能较低
appendfsync everysec  # 每秒同步一次,折衷方案
appendfsync no        # 由操作系统决定何时同步,性能最好,但数据安全性最低

为了优化 AOF 文件的大小,Redis 允许自动或手动重写 AOF 文件。可以在配置文件中设置重写的触发条件:

auto-aof-rewrite-percentage 100  # 增长到原大小的100%时触发重写
auto-aof-rewrite-min-size 64mb   # AOF 文件至少达到64MB时才考虑重写

手动执行 AOF 重写的命令是:

redis-cli bgrewriteaof

如果决定同时使用 RDB 和 AOF,可以在配置文件中同时启用两者。

save 900 1
appendonly yes

还可以在运行时动态更改:

redis-cli config set save "900 1 300 10 60 10000"
redis-cli config set appendonly yes
redis-cli config set appendfsync everysec

http://www.kler.cn/a/559764.html

相关文章:

  • 学术论文项目网站搭建教程【Github】
  • mysql的源码包安装
  • 【杂谈】-强化学习遇见链式思维:将大型语言模型转变为自主推理代理
  • Python 函数(传递任意数量的实参)
  • jmeter 与大数据生态圈中的服务进行集成
  • 软件工程和系统分析与设计
  • 算法随笔_58: 队列中可以看到的人数
  • leetcode - hot100 - python - 专题二:双指针
  • 【STM32 基于PID的闭环电机控制系统】
  • C语言学习,插入排序
  • Linux内核,slub分配流程
  • go 接口interface func (m Market) getName() string {
  • KubeKey一键安装部署k8s集群和KubeSphere详细教程
  • 2025-2-21 leetcode刷题情况(二叉树的修改与构造)
  • JAVAweb-JS基本数据类型,变量,DOM,pop,push函数,事件
  • 基于计算机视觉的手势识别:让机器理解我们的手势语言
  • DeepSeek安装部署笔记(一)
  • VMware中安装的ubuntu虚拟机屏幕由居中设置为最大化
  • 人工智能(AI):科技新纪元的领航者
  • 《解锁光量子制备:开启量子科技新时代》:此文为AI自动生成