Redis持久化

Redis持久化机制

Redis提供两种主要的持久化方式:RDB(Redis Database)和AOF(Append Only File)。这两种方式可以单独使用,也可以结合使用以确保数据安全。

RDB持久化

RDB通过生成数据快照实现持久化。它会将某一时刻的内存数据保存到磁盘上的二进制文件中。

  • 触发条件 :可以通过配置文件设置自动触发条件(如save 900 1表示900秒内至少1次修改触发),或手动执行SAVE/BGSAVE命令。
  • 优点:文件紧凑,恢复速度快,适合备份和灾难恢复。
  • 缺点:可能丢失最后一次快照后的数据,频繁保存影响性能。
AOF持久化

AOF记录所有写操作命令,以追加方式写入文件,重启时重新执行这些命令恢复数据。

  • 同步策略 :
    • appendfsync always:每次写入都同步,数据最安全但性能最低。
    • appendfsync everysec:每秒同步一次,平衡性能与安全(默认配置)。
    • appendfsync no:由操作系统决定同步时机,性能最好但可能丢失数据。
  • 优点:数据安全性高,支持多种同步策略,文件易读。
  • 缺点:文件体积较大,恢复速度慢于RDB。
混合持久化(Redis 4.0+)

结合RDB和AOF的优势:

  1. 定期生成RDB快照作为基础数据。
  2. 两次RDB之间的增量数据通过AOF记录。
  3. 重启时先加载RDB,再重放AOF日志。

配置示例:

plaintext 复制代码
aof-use-rdb-preamble yes
配置建议
  • 数据安全性优先:启用AOF并设置appendfsync everysec,同时定期执行BGSAVE。
  • 性能优先:仅使用RDB,根据业务需求调整保存频率。
  • 平衡方案:启用混合持久化,结合两者优势。
注意事项
  • 监控持久化文件大小,定期清理历史文件。
  • 避免AOF文件过大导致恢复时间过长,可定期使用BGREWRITEAOF重写。
  • 在分布式系统中,持久化不能替代备份,需额外设计多副本或跨机房备份策略。
相关推荐
好想像大佬一样能够ak所有13 小时前
Leetcode35.搜索插入位置
数据结构·算法·leetcode
loong_XL14 小时前
决策模型做内容安全检测:从踩坑到上线
数据库·安全·jev·决策模型
chenbingjie_c14 小时前
C++ STL 适配器:stack & queue,从 vector/list 到 deque 深度解析
数据结构·c++
这个DBA有点耶14 小时前
数据库双轨并行实战:全量并行策略、增量延迟控制、双向回切与一致性校验
数据库·架构·dba
adinnet202614 小时前
保单、赔付与渠道问数:保险经营数据如何实现按需查询
大数据·数据库·人工智能
云贝贝贝15 小时前
PostgreSQL 分区表:从设计到运维,大表不再卡
运维·数据库·postgresql
oradh15 小时前
Oracle固定执行计划的方法---SQL Plan Baseline
数据库·sql·oracle
数据库小学妹15 小时前
数据库高可用演练怎么做?稳态定义、注入点与中止条件
数据库·rto·高可用架构·运维体系·故障演练·容灾切换
zyseo815 小时前
谷歌SEO 站内搜索优化实战:把站内搜索词变成关键词金矿
java·服务器·数据库
qq_4017004115 小时前
Qt 串口/网口通信:Hex 与 ASCII 编码转换深度指南
开发语言·数据库·qt