redis - 将 Redis 转储恢复到不同的数据库

标签 redis

如何转储在数据库 0 上运行的 Redis 并将其恢复到我的本地机器上的另一个数据库 (8)?

我已经安全地复制了转储文件:

scp hostname@/var/lib/redis/dump.rdb .

但是如果我用这个改变我的本地redis dump.rdb,我会得到数据库0上的数据。我怎样才能将它恢复到一个特定的数据库?

最佳答案

首先请注意,不建议使用编号/共享的 Redis 数据库。您真的应该考虑使用带有单个 DB (0) 的专用 Redis 服务器(更多信息位于:https://redislabs.com/blog/benchmark-shared-vs-dedicated-redis-instances)

Redis 没有提供一种直接的方法来做到这一点,但是有两种基本的方法可以做到这一点:

  1. 预处理:修改dump.rdb文件加载到你选择的数据库中。您可以为此构建一个工具,或者使用现有的工具之一。 Jan-Erik 在 http://rdb.fnordig.de/file_format.html 上出色地记录了 RDB v7 格式。所以您需要做的基本上就是更改 Database Selector 字节。

  2. 恢复后:使用 MOVE命令 SCAN 的输出处理恢复的数据库 - 应该很容易编写脚本。

关于redis - 将 Redis 转储恢复到不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880706/

相关文章:

Magento Redis session 问题 : after few hours website slows down

lua - 如何解析redis lua脚本中的Javascript对象

ruby - 无法从 Redis 连接拒绝中解救

Python redis-log错误

redis - Redis MATCH操作中如何使用OR条件

linux - 正常关闭时的默认 Redis 行为

javascript - redis hmget node.js 异步/等待不工作

python - 大型 MGET 请求的连接重置

node.js - Redis - 如何每天使 key 过期

sql - 对于简单值的键值对,关系型数据库不就不如Redis这样的No-SQL数据库吗?