温馨提示×

centos如何持久化redis

小樊
36
2026-07-08 07:49:21
栏目: 云计算

下面分几种常见场景,说明在 CentOS 上如何持久化 Redis。Redis 的持久化不是 CentOS 本身的功能,而是 Redis 自身的机制,CentOS 只是提供运行环境。


一、Redis 的两种持久化方式(核心)

Redis 支持 两种持久化方式,可单独使用,也可同时使用:

1️⃣ RDB(快照方式)

  • 定时把内存数据写入磁盘
  • 文件:dump.rdb
  • 优点:性能好,文件小
  • 缺点:可能丢数据(最后一次快照之后的数据)

2️⃣ AOF(追加日志)

  • 记录每一条写命令
  • 文件:appendonly.aof
  • 优点:数据更安全
  • 缺点:文件大,恢复慢

生产环境推荐:RDB + AOF 同时开启


二、CentOS 上 Redis 持久化配置步骤

1️⃣ 找到 Redis 配置文件

常见路径:

/etc/redis.conf

/etc/redis/redis.conf

如果不确定:

redis-server --version
ps -ef | grep redis

2️⃣ 配置 RDB(默认已开启)

redis.conf 中:

save 900 1
save 300 10
save 60 10000

含义:

  • 900 秒内至少 1 次写操作 → 保存
  • 300 秒内至少 10 次写操作 → 保存
  • 60 秒内至少 10000 次写操作 → 保存

RDB 文件名和路径:

dbfilename dump.rdb
dir /var/lib/redis

✅ 确保目录存在:

mkdir -p /var/lib/redis
chown redis:redis /var/lib/redis

3️⃣ 开启 AOF(推荐)

编辑 redis.conf

appendonly yes
appendfilename "appendonly.aof"

AOF 刷盘策略(重要):

appendfsync everysec

可选值:

  • always:最安全,性能最差
  • everysec推荐
  • no:依赖操作系统

4️⃣ 重启 Redis 使配置生效

CentOS 7 / 8(systemd):

systemctl restart redis
systemctl status redis

老版本(sysvinit):

service redis restart

三、验证持久化是否生效

1️⃣ 查看是否有持久化文件

ls -lh /var/lib/redis

应看到:

dump.rdb
appendonly.aof

2️⃣ 测试持久化

redis-cli
set test 123
exit

重启 Redis:

systemctl restart redis

再进入:

redis-cli
get test

✅ 如果还能取到 123,说明持久化成功。


四、CentOS 系统层面的注意事项(很重要)

1️⃣ 关闭透明大页(THP)

否则可能影响 Redis 稳定性:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

持久化:

vi /etc/rc.d/rc.local

添加:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

2️⃣ 确保磁盘可靠

  • 不要放在 /tmp
  • 建议单独数据盘
  • 定期检查磁盘空间

3️⃣ 防火墙 & 备份

  • Redis 端口(默认 6379)不要随意对外开放
  • 定期备份:
cp /var/lib/redis/dump.rdb /backup/
cp /var/lib/redis/appendonly.aof /backup/

五、常见错误排查

❌ Redis 重启后数据丢失

原因可能是:

  • 没开启 AOF
  • dir 路径不对
  • Redis 以 / 为工作目录启动
  • 使用 docker 但没挂载数据卷

❌ AOF 损坏

修复:

redis-check-aof --fix appendonly.aof

六、总结(推荐配置)

生产环境推荐配置

save 900 1
save 300 10
save 60 10000

appendonly yes
appendfsync everysec
dir /var/lib/redis

如果你愿意,我可以:

  • ✅ 给你一份 生产级 redis.conf
  • ✅ 帮你排查 为什么数据没持久化
  • ✅ 指导 Docker / 集群 / Sentinel 场景

直接告诉我你的使用场景即可。

0