登录/注册

redis持久化

更多

Redis 持久化是指将内存中的数据保存到磁盘上,确保在 Redis 服务重启或服务器故障后数据不会丢失。Redis 提供了两种主要的持久化机制:

? 一、RDB(Redis Database)

核心机制:在指定时间间隔生成数据集的时间点快照(Snapshot)。

工作方式

  1. 手动触发:执行 SAVE(阻塞主线程)或 BGSAVE(后台异步保存)。
  2. 自动触发:配置 save <seconds> <changes>(例如 save 900 1 表示 900 秒内有至少 1 次修改则触发)。
  3. 过程
    • Fork 子进程处理写入。
    • 子进程将内存数据压缩写入临时 RDB 文件。
    • 替换旧的 RDB 文件(默认 dump.rdb)。

优点: ✅ 文件紧凑(二进制压缩),节省磁盘空间
✅ 恢复速度快(直接载入到内存)
✅ 对性能影响小(子进程处理)

缺点: ❌ 可能丢失最后一次快照后的数据(取决于配置间隔)
❌ 数据集大时,fork() 可能阻塞主线程(尤其在虚拟机环境中)


? 二、AOF(Append Only File)

核心机制:记录每次写操作命令(写后日志),重启时重新执行命令恢复数据。

工作方式

  1. 配置 appendonly yes 开启 AOF。
  2. 命令写入内存缓冲区,按策略同步到磁盘:
    • appendfsync always:每个命令同步(数据强一致,性能低⚠️)
    • appendfsync everysec:每秒同步(平衡方案,默认推荐⭐)
    • appendfsync no:由操作系统决定(可能丢失较多数据)
  3. AOF 重写(Rewrite):
    • 压缩日志(移除冗余命令),触发方式:
      • BGREWRITEAOF 手动触发。
      • 配置 auto-aof-rewrite-percentageauto-aof-rewrite-min-size 自动触发。

优点: ✅ 数据安全度高(最多丢失 1 秒数据)
✅ 可读性好(文本格式记录命令)
✅ 后台重写不影响主线程

缺点: ❌ 文件体积通常比 RDB 大
❌ 恢复速度较慢(需重放命令)
❌ 高负载时 everysec 可能轻微延迟


? 三、混合持久化(RDB + AOF)

Redis 4.0+ 支持:结合两者优势,重启时更快恢复。

原理

  1. 开启 AOF(appendonly yes)。
  2. 设置 aof-use-rdb-preamble yes
  3. 重写时:将当前数据以 RDB 格式写入 AOF 文件头部,后续命令以 AOF 格式追加。

效果


? 方案选择建议

场景 推荐方案
可容忍分钟级数据丢失 RDB
高数据安全性要求 AOF(everysec
需快速恢复且低风险 混合持久化(Redis 4.0+)⭐️
灾难恢复备份 RDB 定期备份到异地

️ 注意事项

  1. 监控磁盘空间:AOF 文件可能快速增长。
  2. 禁用 SAVE 命令:生产环境用 BGSAVE 避免阻塞。
  3. 备份策略:无论用哪种,定期将 RDB/AOF 文件复制到异地。
  4. 测试恢复流程:备份文件必须能成功加载!

? 最佳实践:生产环境通常启用混合持久化,同时配置 RDB 定时备份(如每天)到独立存储,实现多层次数据保护。

如果需要进一步优化细节(如重写阈值、fsync 调优),可结合业务负载具体调整参数!

云容器redis持久配置

云容器化技术为企业带来了很多好处,包括高度可扩展性、灵活性和可移植性。其中一个常见的容器化应用是Redis,一种高性能的键值对存储系统。在云环境

2023-12-05 10:07:10

redis里数据什么时候持久

Redis是一种开源的高性能、非关系型内存数据库,它使用了键值对存储数据,并且支持多种数据结构。 Redis提供了持久

2023-12-05 10:05:39

redis持久机制优缺点

Redis是一个基于内存的高性能键值存储系统,它提供了多种持久化机制来保证数据的可靠性。本文将详细介绍

2023-12-05 10:03:58

mysql_redis在MySQL中操作Redis 

./oschina_soft/gitee-mysql_redis.zip

资料下载 李晓鹏 2022-06-22 14:35:55

redis设计与实现

redis

资料下载 ah此生不换 2022-06-20 14:44:46

redis入门指南

redis最好入门教程

资料下载 xlh145 2022-03-07 15:54:34

嵌入式Linux系统重启后如何使得redis中的数据不再有

,原因是redis的持久化功能导致的,所谓的持久

资料下载 佚名 2021-11-02 15:06:10

一款同步Redis数据的异地机房同步数据程序和工程文件

Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言

资料下载 咔咔咔 2020-07-17 08:00:00

redis持久机制和如何实现持久

Redis是一款高性能的非关系型数据库,其持久化机制是保证数据在重启后仍能够保存的关键。

2023-12-05 10:02:22

redis持久方式RDB和AOF的区别

Redis 是一个高性能的键值对数据库,提供了两种持久化方式:RDB 和 AOF。RDB 是将

2023-12-04 16:25:44

redis两种持久方式的区别

Redis是一款高性能、开源的键值存储数据库,它支持多种数据结构,并且具有高效的内存读写以及持久化功能。

2023-12-04 11:12:46

Redis持久RDB方式介绍

Redis持久化 Redis是一个内存数据库,为了保证数据的

2023-10-09 14:56:50

Redis持久机制介绍

Redis持久化机制? 为了能够重用Redis数据,或者防止系统故障,我

2023-10-09 11:44:59

Redis持久机制的实现原理和使用技巧

Redis将数据存储在内存中,宕机或重启都会使内存数据全部丢失, Redis的持久化

2022-09-13 16:42:24

Redis坚持持久方式概述

Redis 持久化

2019-09-25 17:04:02
7天热门专题 换一换
相关标签