在redis中转储和恢复特定密钥的数据

时间:2014-02-18 07:14:23

标签: redis backup restore dump

我想在我的redis中备份具有多个键的特定键。我的redis有很多键,我不想完全备份我的redis数据。我一直在经历http://redis.io/commands。在那里我发现有一个命令转储,我可以通过它来转储特定的密钥,如下所示:

 redis> dump "myKey"

但是仅在redis控制台中以十六进制格式提供输出。是否可以将特定密钥的数据存储在文件中,然后将其导入该密钥?

3 个答案:

答案 0 :(得分:22)

如果您尝试从命令行转储/恢复密钥(这是我在发现此问题时需要执行的操作),Redis有一些非显而易见的怪癖。有关更详细的说明,请参阅this answer

简短的回答是转储/恢复如下:

bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0

答案 1 :(得分:1)

编写一个将DUMP需要密钥的脚本,将输出保存到文件中,然后您可以读取这些文件并将其内容推送到RESTORE命令。

答案 2 :(得分:0)

关注这篇文章:

bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0

如果这对您不起作用,则会出现如下错误:head:非法字节计数 - -1

然后在没有head命令的情况下修改dump命令:

redis-cli --raw dump mykey> MYFILE

现在,在PC上的mac或textpad上用sublime打开转储文件,然后删除最后两个字符并保存,然后进行恢复。

这是我最后两行:

 0561 7074 7572 6520 fa00 5be0 0526 015d
 7d06 00a7 afed c100 323d 400a 

我删除了“0a”并保存并恢复有效,例如

0561 7074 7572 6520 fa00 5be0 0526 015d
7d06 00a7 afed c100 323d 40