Redis持久化策略配置讲解:零基础也能上手的RDB与
为什么你的Redis重启后数据全丢了?——持久化不可跳过
很多新手用Redis只当缓存,一重启数据就没了,尤其是存了用户会话或关键计数时非常尴尬。Redis持久化策略配置讲解的核心就是解决这个问题:通过RDB快照或AOF日志,把内存数据写入磁盘,重启后自动恢复。
本文直接用命令和配置帮你搞定,不扯理论。
开搞前需要确认的几件事
- 已经安装好Redis,能正常启动和连接(版本建议2.8以上,推荐6.x或7.x)。
- 找到Redis配置文件,通常叫
redis.conf或/etc/redis/redis.conf。不确定的话用命令:
redis-cli CONFIG GET dir
redis-cli CONFIG GET dbfilename
- 确保Redis进程有权限在配置的数据目录下创建文件(一般是
/var/lib/redis或/data)。
第一步:配置RDB快照——给数据拍个照
RDB是定期把全量内存数据保存成一个.rdb文件。
默认配置已经开启,但为了稳定还是要自己过一遍。
打开redis.conf,找到并检查以下几行:
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis
解释:save 900 1表示900秒内如果有至少1个key变化,就触发一次快照。
最后一行dir指定.rdb文件保存目录。
如果你想改成其他规则,比如每30分钟一次,可以写:
save 1800 1
修改后重启Redis或用命令热加载:
redis-cli CONFIG SET save "1800 1 300 10"
redis-cli CONFIG REWRITE
第二步:让AOF帮你保住每一次写入——细粒度日志
AOF记录每次写操作命令,重启时重放这些命令恢复数据,比RDB更及时但文件更大。
开启方式:
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec # 每秒同步一次,平衡性能和安全
常用同步策略:
always:每个写命令都同步,最安全但最慢。everysec:每秒同步一次(推荐)。no:交给操作系统,速度最快但可能丢失1秒数据。
除了基础配置,建议也开启AOF重写自动触发:
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
当AOF文件大小超过上一次重写时大小的100%且大于64MB,Redis会自动在后台重写AOF,压缩体积。
这三个持久化配置雷区你踩过几个?
- 混合持久化想用但没开:Redis 4.0+支持同时用RDB和AOF,重启时先加载RDB快,再用AOF补增量。开启方式:
aof-use-rdb-preamble yes
- 不检查日志导致恢复失败:如果AOF文件损坏,Redis可能拒绝启动。可以先用
redis-check-aof --fix修复。
redis-check-aof --fix /var/lib/redis/appendonly.aof
- 忘了设置dir权限:Redis用户如果没有写入权限,持久化会静默失败。检查:
ls -ld /var/lib/redis
sudo chown redis:redis /var/lib/redis -R
三步验证持久化是否生效
验证RDB:
# 手动触发一次快照
redis-cli SAVE
# 检查dump.rdb文件是否存在且大小合理
ls -lh /var/lib/redis/dump.rdb
# 用redis-check-rdb检查完整性
redis-check-rdb /var/lib/redis/dump.rdb
验证AOF:
# 查看AOF状态
redis-cli INFO persistence | grep aof
# 输出应显示aof_enabled:1
aof_enabled:1
模拟重启恢复:
# 停掉Redis
sudo systemctl stop redis
# 删除RDB文件(只限测试,千万别在生产删)
sudo rm -f /var/lib/redis/dump.rdb
# 启动Redis
sudo systemctl start redis
# 连接检查之前的数据是否还在
redis-cli KEYS '*'
如果数据还在,说明持久化正常运作。
生产环境建议先测试再上线。
最后说两句
如果你正在处理Redis持久化策略配置讲解相关需求,建议先按本文步骤完整执行一遍,然后根据业务数据量调整save和appendfsync参数。
记得每天检查持久化文件大小和磁盘空间,遇到启动失败优先用redis-check-*工具排查。
数据安全无小事,多一次检验少一次事故。