我有一个包含8GB数据的dump.rdb文件。由于redis将从RAM读取,我想在我的本地开发机器上以较少的数据启动redis-server。
是否有可能从dump.rdb中删除大约95%的密钥,以便拥有一个只有几千个密钥的测试转储文件,而不是生产服务器上的8个MiO。
答案 0 :(得分:2)
您必须使用完整的RDB启动一个新实例,然后删除键以获得您想要的内容,然后保存该RDB并在您的开发机器上使用它。没有本地方法可以直接更改RDB文件。
答案 1 :(得分:0)
没有原生的Redis方式,但您可以使用rdb-tools进行操作,您只能读取遵循模式的密钥并使用Redis协议发出它们。
这样的事情:
rdb.py --command protocol --key "users:*" dump.rdb
将输出:
*3
$3
SET
$13
users:1824594
$32
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*3
$3
SET
$13
users:1826324
$32
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
此输出可以使用netcat直接提供给Redis资源。