我想备份Redis中特定的一个键,而Redis中有许多键,我不想备份整个Redis数据库。我查看了http://redis.io/commands,发现有一个dump命令可以用来备份一个特定的键,命令如下:
redis> dump "myKey"
但是在Redis控制台中,输出的格式仅限于十六进制。是否有可能将特定键的数据存储到文件中,然后稍后将其导入到该键中?
我想备份Redis中特定的一个键,而Redis中有许多键,我不想备份整个Redis数据库。我查看了http://redis.io/commands,发现有一个dump命令可以用来备份一个特定的键,命令如下:
redis> dump "myKey"
但是在Redis控制台中,输出的格式仅限于十六进制。是否有可能将特定键的数据存储到文件中,然后稍后将其导入到该键中?
如果您正尝试从命令行转储/恢复密钥(这是我发现这个问题时需要做的),Redis具有一些不明显的怪癖。请参阅此答案以获取更详细的说明。
简短的答案是按以下方式进行转储/恢复:
bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0
#!/bin/bash for each in $( redis-cli KEYS \apikey* ); do redis-cli --raw dump mykey | head -c-1 > dump/$each done
这些文件可以在之后使用Brendan Wood的脚本进行导入。 - Timothy Dalton接着这篇文章:
bwood@mybox:~$ redis-cli --raw dump mykey | head -c-1 > myfile
bwood@mybox:~$ cat myfile | redis-cli -x restore mynewkey 0
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
DUMP
所需的键,将输出保存到文件中,然后稍后您可以读取这些文件并将其内容推送到RESTORE命令。关于这篇文章的另一个跟进:
有可能你的文件末尾只是一个可见的换行符。所以,如果你用自己喜欢的文本编辑器打开它,只需删除最后一个换行符即可。
这对我很有帮助。
之前的用户建议例如删除最后两个字符,但对我来说并没有起作用,因为数据以不同的方式表示。