TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:

TOP云总站云服务器:https://topyun.vip/server/buy.html

TOP云C站云服务器:https://c.topyun.vip/cart

在云服务器上配置 Redis 持久化,是为了保证 Redis 在重启或宕机后,数据不会完全丢失。Redis 提供了两种主要的持久化机制

  1. RDB(Redis DataBase):定时生成数据快照,保存到磁盘文件中。

  2. AOF(Append Only File):记录所有写操作命令,以日志形式追加到文件,重启时重新执行这些命令来恢复数据。

你可以单独使用其中一种,也可以同时启用两种方式,根据业务对数据安全性与性能的要求进行权衡。


一、Redis 持久化方式简介

持久化方式原理优点缺点
RDB定时将内存中的数据快照保存到磁盘(二进制文件,如 dump.rdb)文件小,恢复速度快,适合备份和灾难恢复可能会丢失最近一次快照与崩溃之间的数据
AOF记录所有写操作命令(文本格式),重启时重新执行这些命令恢复数据数据丢失风险小,可配置不同同步策略文件体积大,恢复速度相对较慢

二、配置 Redis 持久化的步骤(以 Linux 云服务器为例)

假设你已经安装好 Redis 并正常运行,下面介绍如何配置 RDB 和 AOF 持久化。


1. 找到 Redis 配置文件

Redis 的配置文件通常位于:

  • /etc/redis/redis.conf(大多数 Linux 发行版)

  • 或 /usr/local/etc/redis.conf(源码安装默认路径)

使用编辑器打开配置文件:

sudo nano /etc/redis/redis.conf

2. 配置 RDB 持久化

在 redis.conf 中找到与 RDB 相关的配置项,默认是开启的。主要参数如下:

# 是否开启 RDB 持久化(默认 yes)
save 900 1           # 在 900 秒(15 分钟)内,如果有至少 1 个 key 被修改,则触发快照
save 300 10          # 在 300 秒(5 分钟)内,如果有至少 10 个 key 被修改,则触发快照
save 60 10000        # 在 60 秒内,如果有至少 10000 个 key 被修改,则触发快照

# RDB 文件名
dbfilename dump.rdb

# RDB 文件保存路径(注意目录要有写入权限)
dir /var/lib/redis

说明

  • save 指令定义了触发 RDB 快照的条件。你可以根据业务需求调整这些条件,甚至可以注释掉所有 save 行来关闭 RDB(不推荐)。

  • dbfilename 是 RDB 快照文件的名称,默认是 dump.rdb。

  • dir 是 RDB 文件存储的目录,确保 Redis 用户对该目录有写权限。


3. 配置 AOF 持久化

在 redis.conf 中找到 AOF 相关配置,默认是关闭的:

# 是否开启 AOF 持久化(默认 no)
appendonly no

# AOF 文件名
appendfilename "appendonly.aof"

# AOF 同步策略(控制数据安全性与性能的权衡)
appendfsync everysec  # 默认值:每秒同步一次,折中方案
# appendfsync always  # 每次写操作都同步,数据最安全,但性能最低
# appendfsync no      # 由操作系统决定何时同步,性能最好,但可能丢失较多数据

# AOF 重写策略(压缩 AOF 文件)
auto-aof-rewrite-percentage 100  # 当前 AOF 文件大小比上次重写后增长了 100% 时触发重写
auto-aof-rewrite-min-size 64mb   # AOF 文件至少要达到 64MB 才触发重写

建议配置

  • appendonly yes:开启 AOF 持久化。

  • appendfsync everysec:折中方案,兼顾性能与数据安全(推荐大多数场景使用)。

  • auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size:控制 AOF 文件重写的频率,避免文件过大。


4. 同时启用 RDB 和 AOF(推荐)

你可以同时开启 RDB 和 AOF,这样既能利用 RDB 快速恢复的优点,又能通过 AOF 提高数据安全性。

在 redis.conf 中确保以下配置:

save 900 1
save 300 10
save 60 10000

dbfilename dump.rdb
dir /var/lib/redis

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

注意

  • 当同时启用 RDB 和 AOF 时,Redis 重启时会优先使用 AOF 文件恢复数据,因为 AOF 的数据完整性更高。

  • RDB 文件可以作为备份和灾难恢复使用。


5. 检查配置并重启 Redis

修改完配置文件后,检查配置是否正确:

sudo redis-cli config rewrite

此命令会将当前运行中的配置写入到 redis.conf 文件中(仅对支持动态配置的 Redis 版本有效,如 Redis 4.0+)。

然后重启 Redis 服务使配置生效:

# Ubuntu/Debian
sudo systemctl restart redis-server

# CentOS/RHEL
sudo systemctl restart redis

检查 Redis 是否正常运行:

sudo systemctl status redis-server
# 或
redis-cli ping
# 应返回 PONG

三、验证持久化是否生效

方法 1:写入数据后重启 Redis,检查数据是否存在

  1. 使用 redis-cli 写入一条数据:

redis-cli
127.0.0.1:6379> SET testkey "Hello, Redis Persistence!"
OK
  1. 退出 Redis:

127.0.0.1:6379> exit
  1. 重启 Redis 服务:

sudo systemctl restart redis-server
  1. 再次连接 Redis,查看数据是否存在:

redis-cli
127.0.0.1:6379> GET testkey
# 如果返回 "Hello, Redis Persistence!",说明持久化成功

方法 2:查看 RDB 和 AOF 文件是否生成

  • RDB 文件路径:/var/lib/redis/dump.rdb(根据 dir 配置)

  • AOF 文件路径:/var/lib/redis/appendonly.aof

使用 ls -lh 查看文件是否存在及大小:

ls -lh /var/lib/redis/

你应该能看到类似如下的文件:

-rw-r--r-- 1 redis redis 123K Apr 27 12:34 dump.rdb
-rw-r--r-- 1 redis redis 456K Apr 27 12:35 appendonly.aof

四、持久化相关的管理与优化建议

1. 定期备份 RDB 和 AOF 文件

虽然 Redis 自身有持久化机制,但仍建议将 dump.rdb 和 appendonly.aof 文件定期备份到其他服务器或云存储(如阿里云 OSS、腾讯云 COS 等),以防止服务器磁盘损坏或丢失。

可以使用 scp 或 rsync 将备份文件复制到本地或其他服务器:

scp /var/lib/redis/dump.rdb user@本地IP:/backup/
scp /var/lib/redis/appendonly.aof user@本地IP:/backup/

2. 控制 AOF 文件大小

AOF 文件可能会随着时间增长变得非常大,Redis 提供了AOF 重写机制来压缩文件:

  • 当 AOF 文件增长到一定比例(auto-aof-rewrite-percentage)且达到最小大小(auto-aof-rewrite-min-size)时,Redis 会在后台自动重写 AOF 文件,去除冗余命令,生成一个新的更小的 AOF 文件。

你可以通过 INFO persistence 命令查看 AOF 重写状态:

redis-cli
127.0.0.1:6379> INFO persistence

关注以下字段:

rdb_last_bgrewrite_status:ok
aof_last_bgrewrite_status:ok
aof_current_size:12345678
aof_base_size:9876543
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_in_progress:0

3. 监控持久化状态

可以使用 redis-cli 的 INFO 命令查看持久化相关的状态信息:

redis-cli
127.0.0.1:6379> INFO persistence

重点关注:

  • rdb_last_save_time:上次 RDB 快照保存的时间

  • rdb_last_bgsave_status:上次 RDB 保存状态(ok 表示成功)

  • aof_enabled:AOF 是否开启

  • aof_last_bgrewrite_status:AOF 重写状态

  • aof_current_size:当前 AOF 文件大小


4. 生产环境建议

场景建议
数据安全性要求高开启 AOF,并设置 appendfsync everysec(折中方案);同时开启 RDB 作为备份
性能要求高,允许少量数据丢失可以仅使用 RDB,调整 save 时间间隔,比如 save 60 10000
数据量非常大使用 RDB + AOF,同时注意监控 AOF 文件大小,定期优化和备份
云数据库用户(如阿里云 Redis、腾讯云 CRedis)通常云服务商已默认开启持久化,无需手动配置,但可以关注备份策略和恢复机制

五、总结:Redis 持久化配置要点

步骤操作
1️⃣ 找到配置文件通常是 /etc/redis/redis.conf
2️⃣ 开启 RDB配置 save 规则、dbfilename 和 dir
3️⃣ 开启 AOF设置 appendonly yes、appendfsync everysec 等参数
4️⃣ 同时启用 RDB + AOF(推荐)兼顾性能与数据安全
5️⃣ 重启 Redis使配置生效
6️⃣ 验证持久化写入数据 → 重启 → 检查数据是否存在
7️⃣ 定期备份将 RDB 和 AOF 文件备份到其他位置或云存储


不容错过
Powered By TOPYUN 云产品资讯