从具有多个数据库的实例中复制单个Redis数据库
我有一个Redis实例,其中有两个数据库。现在,我想设置第二个实例并复制第一个实例,但是第二个实例应该仅具有一个数据库,并且仅复制第一个实例中的db
0。当我尝试执行此操作(slaveof ...
为第二个实例设置)时,我在Redis日志文件中收到以下错误消息:
FATAL: Data file was created with a Redis server configured to handle more than 1 databases. Exiting
我尝试使用redis-dump,但是尝试将生成的转储导入新实例时出现错误。(我认为与2 dbs和1 db无关,而是redis-dump中的一个错误,该错误仍在alpha中。
该怎么办?
回答:
这是我的实现方式(在Gurpartap Singh的帮助下):
- 与
databases 2
第一个实例一样配置第二个Redis实例 - 复制第一个实例(请参阅http://redis.io/topics/replication)
- 打开第二个Redis实例的命令行(使用redis-cli)
- 在Redis CLI上:SELECT 1(选择第二个数据库)
- 在Redis CLI上:FLUSHDB(删除第二个数据库中的所有键)
- 在Redis CLI上:SAVE(将数据集保存到磁盘)
- 退出Redis CLI并停止Redis
- 将配置更改为
databases 1
- 重新启动Redis
此时,您应该有一个只有一个数据库的运行Redis实例(原始Redis实例的db 0)
这里的关键是,当我们删除第二个数据库中的所有密钥,然后将数据集保存到磁盘时,生成的转储只有一个数据库。(感谢古尔帕塔普·辛格的暗示)
以上是 从具有多个数据库的实例中复制单个Redis数据库 的全部内容, 来源链接: utcz.com/qa/409231.html