Redis篇之持久化数据恢复

Redis 提供了两种主要的持久化机制:RDB(Redis 数据库快照)和 AOF(附加文件)。

这两种机制各有特点和用途。

下面是如何使用 RDB 和 AOF 恢复 Redis 数据的步骤。

1、RDB(Redis 数据库快照)

RDB 是 Redis 的一种持久化机制,通过周期性地将数据库的状态快照保存在磁盘上的 RDB 文件中进行备份。RDB 文件通常是以 .rdb 结尾的文件。

恢复数据

找到 RDB 文件

确保你有一个有效的 RDB 文件。

如果你没有 RDB 文件,可以从 Redis 数据目录(通常是 /var/lib/redis 或其他配置目录)中找到 dump.rdb 文件。

step1:准备 Redis 服务器

停止当前运行的 Redis 实例(如果有):

复制代码
sudo systemctl stop redis
或者:
redis-cli shutdown

step2:复制 RDB 文件

将 dump.rdb 文件复制到 Redis 数据目录:

复制代码
cp /path/to/your/dump.rdb /var/lib/redis/dump.rdb

确保文件权限和所有者正确,以便 Redis 进程可以读取它。

step3:启动 Redis 服务器

启动 Redis 实例:

复制代码
sudo systemctl start redis
或者:
redis-server /path/to/redis.conf

Redis 会自动加载 dump.rdb 文件中的数据,并恢复到数据库中。

2、AOF(附加文件)

AOF 是 Redis 的另一种持久化机制,它通过将每次写操作追加到 AOF 文件中来实现持久化。AOF 文件通常是以 .aof 结尾的文件。

恢复数据

找到 AOF 文件

确保你有一个有效的 AOF 文件。

如果你没有 AOF 文件,可以从 Redis 数据目录中找到 appendonly.aof 文件。

step1:准备 Redis 服务器

停止当前运行的 Redis 实例(如果有):

复制代码
sudo systemctl stop redis
或者:
redis-cli shutdown

step2:复制 AOF 文件

将 appendonly.aof 文件复制到 Redis 数据目录:

复制代码
cp /path/to/your/appendonly.aof /var/lib/redis/appendonly.aof

确保文件权限和所有者正确,以便 Redis 进程可以读取它。

step3:启动 Redis 服务器

启动 Redis 实例:

复制代码
sudo systemctl start redis
或者:
redis-server /path/to/redis.conf

Redis 会自动加载 appendonly.aof 文件中的数据,并恢复到数据库中。

3. 混合使用 RDB 和 AOF

如果 Redis 配置同时启用了 RDB 和 AOF,Redis 会优先使用 AOF 文件来恢复数据,因为 AOF 文件包含了更详细的写操作日志,更能确保数据的完整性和一致性。如果 AOF 文件不可用,Redis 会回退到使用 RDB 文件进行恢复。

确保配置正确

检查 Redis 配置文件(redis.conf)中的持久化设置,确认你是否同时启用了 RDB 和 AOF:
RDB配置

复制代码
save 900 1
save 300 10
save 60 10000

AOF 配置

复制代码
appendonly yes
appendfsync everysec

参数说明:

save:用于配置 RDB 快照的生成规则。

appendonly yes:启用 AOF 持久化。

appendfsync everysec:配置 AOF 文件的同步策略。

总结

  • RDB:通过将数据库快照保存为 dump.rdb 文件来进行恢复。停止 Redis,替换 RDB 文件,然后重新启动 Redis。
  • AOF:通过将每次写操作追加到 appendonly.aof 文件来进行恢复。停止 Redis,替换 AOF 文件,然后重新启动 Redis。
    无论是使用 RDB 还是 AOF,都需要确保 Redis 实例在恢复过程中处于停止状态,以避免数据不一致。
相关推荐
一个天蝎座 白勺 程序猿16 分钟前
Apache IoTDB(5):深度解析时序数据库 IoTDB 在 AINode 模式单机和集群的部署与实践
数据库·apache·时序数据库·iotdb·ainode
QQ35967734540 分钟前
ArcGIS Pro实现基于 Excel 表格批量创建标准地理数据库(GDB)——高效数据库建库解决方案
数据库·arcgis·excel
学编程的小程1 小时前
突破局域网限制:MongoDB远程管理新体验
数据库·mongodb
波波烤鸭1 小时前
Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)
数据库·redis·sentinel
l1t5 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
MarkHard1239 小时前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
island131411 小时前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王11 小时前
Redis的过期策略
数据库·redis·缓存
倔强的石头_11 小时前
CentOS 上安装KingbaseES(ISO包)详细教程
数据库
2401_8979300612 小时前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j