我想在我的redis中备份具有多个键的特定键。我的redis有很多键,我不想完全备份我的redis数据。我一直在经历http://redis.io/commands。在那里我发现有一个命令转储,我可以通过它来转储特定的密钥,如下所示:
redis> dump "myKey"
但是仅在redis控制台中以十六进制格式提供输出。是否可以将特定密钥的数据存储在文件中,然后将其导入该密钥?
答案 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