Redis故障备份模拟

时间:2014-10-03 16:20:38

标签: redis persistence

我使用的是redis服务器(v.2.4.6),在Windows 8计算机上启用了RDB持久性。我想模拟redis故障并重置,因此我对备份过程更有信心。

我已经找到了很多关于redis持久性和备份的信息,但是我无法弄清楚一旦发生故障该怎么做。

我尝试使用数据文件夹中的大量测试数据复制dump.rdb,然后卸载/重新安装redis,将原始dump.rdb文件粘贴到新数据文件夹中并运行。当我运行命令" keys *"时,它表示空列表或设置。

那么,我如何模拟redis数据库的故障然后恢复呢?

编辑:我在关闭redis之前覆盖了rdb文件,导致覆盖。现在,这些是我为模拟故障和备份而采取的步骤。

  1. 我停止了redis服务
  2. 我用测试数据库(在另一台服务器上)用rdb文件覆盖dump.rdb文件
  3. 我尝试再次启动redis服务,但是我收到错误"本地计算机上的Redis Server服务已启动然后停止。如果某些服务未被其他服务或程序使用,则会自动停止。"
  4. 如果我删除rdb文件,我可以启动该服务,并在同一位置创建一个空的rdb文件。

    这是它在redis.log文件中显示的内容:"无法处理RDB格式版本6",但两个数据库都使用完全相同的redis版本。

3 个答案:

答案 0 :(得分:0)

查看SNAPSHOTTING文件的redis.conf部分。 您的rdb转储文件名和路径在那里定义(单独的参数)。

确保将转储放在正确的文件夹中并使用正确的名称,启动Redis时将进行恢复。

如何杀死Redis进程来模拟失败?

答案 1 :(得分:0)

我明白了。显然我的测试数据库使用了不同版本的redis(我认为它们是相同的)。我从测试数据库中获得了另一个使用v 2.4.6的rdb文件,所有内容都按预期加载。

答案 2 :(得分:0)

转到redis-stable目录并运行 ./src/redis-server

这对我有用。