Redis 提供了两种主要的数据持久化方式:RDB(Redis DataBase)和 AOF(Append Only File)。下面分别介绍这两种方式的使用:
RDB(Redis DataBase)
RDB 是 Redis 默认的持久化方式。它会在指定的时间间隔内生成数据集的时间点快照(snapshot)。
配置 RDB
在 redis.conf 文件中,可以通过以下配置来设置 RDB 持久化:
# 设置在 900 秒(15 分钟)之后,如果至少有 1 个 key 发生了变化,则自动触发 RDB 快照
save 900 1
# 设置在 300 秒(5 分钟)之后,如果至少有 10 个 key 发生了变化,则自动触发 RDB 快照
save 300 10
# 设置在 60 秒(1 分钟)之后,如果至少有 10000 个 key 发生了变化,则自动触发 RDB 快照
save 60 10000
# 禁用 RDB 持久化
save ""
手动触发 RDB 快照
除了配置自动触发 RDB 快照外,还可以通过 SAVE 或 BGSAVE 命令手动触发 RDB 快照:
SAVE:阻塞 Redis 服务器,直到 RDB 进程完成,期间无法处理客户端请求。BGSAVE:在后台异步执行 RDB 快照,不会阻塞 Redis 服务器。
SAVE
BGSAVE
AOF(Append Only File)
AOF 持久化记录服务器接收到的所有写操作命令,并在服务器启动时,通过重新执行这些命令来重建数据集。
配置 AOF
在 redis.conf 文件中,可以通过以下配置来启用 AOF 持久化:
# 启用 AOF 持久化
appendonly yes
# 设置 AOF 文件名
appendfilename "appendonly.aof"
# 设置 AOF 文件同步策略
appendfsync everysec # 每秒同步一次,性能和持久化之间取得平衡
appendfsync always # 每次写操作都同步,最安全但性能较差
appendfsync no # 不主动同步,由操作系统决定何时同步,性能最好但安全性最低
手动触发 AOF 重写
AOF 文件会随着时间的推移变得越来越大,为了控制文件大小,可以定期进行 AOF 重写。Redis 会根据当前数据集生成一个新的 AOF 文件,替换旧的 AOF 文件。
可以通过 BGREWRITEAOF 命令手动触发 AOF 重写:
BGREWRITEAOF
混合使用 RDB 和 AOF
为了兼顾性能和数据安全性,可以同时启用 RDB 和 AOF 持久化。在这种情况下,Redis 会优先使用 AOF 文件来恢复数据,因为 AOF 文件通常比 RDB 文件更完整。
在 redis.conf 文件中,可以设置:
# 启用 AOF 持久化
appendonly yes
# 禁用 RDB 持久化
save ""
注意事项
- 性能影响:RDB 和 AOF 都会对 Redis 的性能产生一定影响,特别是在高并发写入场景下。可以根据实际需求调整持久化策略。
- 数据安全性:AOF 提供了更高的数据安全性,因为它记录了所有的写操作命令。RDB 只是定期生成数据快照,如果在两次快照之间发生故障,可能会丢失部分数据。
- 文件大小:AOF 文件通常比 RDB 文件大,因为 AOF 记录了所有的写操作命令。可以通过配置
auto-aof-rewrite-percentage和auto-aof-rewrite-min-size来控制 AOF 文件的重写。
通过合理配置和使用 RDB 和 AOF,可以有效地保证 Redis 数据的持久化和安全性。
以上就是关于“Redis数据持久化怎么做”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm