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 提供了两种主要的持久化机制:
RDB(Redis DataBase):定时生成数据快照,保存到磁盘文件中。
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,检查数据是否存在
使用 redis-cli 写入一条数据:
redis-cli
127.0.0.1:6379> SET testkey "Hello, Redis Persistence!"
OK
退出 Redis:
127.0.0.1:6379> exit
重启 Redis 服务:
sudo systemctl restart redis-server
再次连接 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 文件备份到其他位置或云存储 |