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 实例在恢复过程中处于停止状态,以避免数据不一致。
相关推荐
Dying.Light3 分钟前
MySQL相关问题
数据库·mysql
蜡笔小炘37 分钟前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长40 分钟前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Re.不晚1 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
老邓计算机毕设1 小时前
SSM智慧社区信息化服务平台4v5hv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·智慧社区、·信息化平台
麦聪聊数据2 小时前
为何通用堡垒机无法在数据库运维中实现精准风控?
数据库·sql·安全·低代码·架构
2301_790300962 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919102 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
亓才孓2 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
m0_466525293 小时前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全