数据库

Redis 持久化与数据安全配置

理解 RDB 与 AOF 的取舍,配置安全、持久化和恢复演练。

先判断 Redis 承担什么职责#

如果 Redis 只是可重建缓存,可以关闭持久化;如果保存登录会话、队列或限流状态,就应明确可接受的数据丢失窗口。RDB 是时间点快照,AOF 记录写命令,两者可以同时启用。

常用生产配置#

conf
appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
save 900 1
save 300 10
save 60 10000
maxmemory-policy noeviction

appendfsync everysec 通常在性能和持久性之间取得平衡,极端故障下可能损失约一秒写入。是否可以接受,取决于业务,而不是配置模板。

在线检查#

bash
redis-cli -a "$REDIS_PASSWORD" INFO persistence
redis-cli -a "$REDIS_PASSWORD" INFO memory
redis-cli -a "$REDIS_PASSWORD" CONFIG GET appendonly
redis-cli -a "$REDIS_PASSWORD" CONFIG GET appendfsync

重点观察 aof_last_write_status、aof_last_bgrewrite_status、rdb_last_bgsave_status 和磁盘剩余空间。

恢复演练#

  1. 停止隔离环境中的 Redis。
  2. 复制 RDB/AOF 与权限信息。
  3. 启动相同主版本的 Redis。
  4. 检查启动日志与键数量。
  5. 用应用执行一次会话或队列流程。

详细取舍可参考 Redis Persistence 官方文档。如果实例中完全不能丢数据,还需要复制、高可用和业务侧幂等,而不只是把 appendfsync 改成 always。

GK / OPS NOTES
把每一次变更写成可以复现的步骤

示例命令请先在测试环境验证,再根据自己的系统版本、网络和备份策略调整。

讨论区 12

分享你的经验、补充或不同观点。支持 Markdown 基础语法。

讨论区暂时为空,欢迎分享你的经验。