Joy*_*Joy 9 backup dump restore redis
我想在我的redis中备份具有多个键的特定键.我的redis有很多键,我不想完全备份我的redis数据.我一直在浏览http://redis.io/commands.在那里我发现有一个命令转储,我可以通过它转储特定的密钥,如下所示:
redis> dump "myKey"
Run Code Online (Sandbox Code Playgroud)
但是仅在redis控制台中以十六进制格式提供输出.是否可以将特定密钥的数据存储在文件中,然后将其导入该密钥?
Bre*_*ood 25
如果您尝试从命令行转储/恢复密钥(这是我在发现此问题时需要执行的操作),Redis有一些非显而易见的怪癖.请参阅此答案以获取更详细的说明.
简短的回答是转储/恢复如下:
bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0
Run Code Online (Sandbox Code Playgroud)
关注这个帖子:
bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0
Run Code Online (Sandbox Code Playgroud)
如果这对您不起作用,并且您收到如下错误:head:非法字节数 -- -1
然后修改dump命令,不带head命令:
redis-cli --raw dump mykey > myfile
现在,在 mac 上使用 sublime 打开转储文件或在 PC 上使用 textpad 并删除最后两个字符并保存,然后进行恢复。
这是我的最后两行:
0561 7074 7572 6520 fa00 5be0 0526 015d
7d06 00a7 afed c100 323d 400a
Run Code Online (Sandbox Code Playgroud)
我删除了“0a”并保存并且恢复工作,例如
0561 7074 7572 6520 fa00 5be0 0526 015d
7d06 00a7 afed c100 323d 40
Run Code Online (Sandbox Code Playgroud)