用于单个数据库的Redis SLAVEOF
我希望从一个新的redis box运行用于单个数据库的Redis SLAVEOF,redis,amazon-elasticache,Redis,Amazon Elasticache,我希望从一个新的redis box运行SLAVEOF命令,将数据从Elasticache节点迁移到运行redis的正常EC2 box。理想情况下,我会运行类似于SLAVEOF IP DB_INDEX的程序,这样我只从主服务器上的DB_INDEX中提取数据,而不是从所有可用的数据库中提取数据。这可能吗?不,您不能在Redis中只复制一个“数据库”。更容易将这些视为“键空间”,而不是单个数据库。此外,根据Elasticache的文档,导入数据的方法是上传快照(RDB文件)——而不是通过复制命令 由于
SLAVEOF
命令,将数据从Elasticache节点迁移到运行redis的正常EC2 box。理想情况下,我会运行类似于SLAVEOF IP DB_INDEX
的程序,这样我只从主服务器上的DB_INDEX
中提取数据,而不是从所有可用的数据库中提取数据。这可能吗?不,您不能在Redis中只复制一个“数据库”。更容易将这些视为“键空间”,而不是单个数据库。此外,根据Elasticache的文档,导入数据的方法是上传快照(RDB文件)——而不是通过复制命令
由于您正在进行迁移,您可以:
FLUSHDB
(不要执行FLUSHALL
)李>
这将导致您的新实例在“0”数据库中只包含您想要的数据-如果您选择移动键。AFAIK这是不可能的。请参阅文档以了解。PS:我以前在一个新的EC2实例上把Elasticache复制到redis服务器上,它工作得非常完美。谢谢你,比尔。实际上,我们正走另一条路(Elasticache->EC2),因此SLAVEOF命令使事情变得更容易,因为我们不必担心迁移过程中产生的增量。根据tobiash在上面的评论,我们似乎不能做我们希望做的事情,老实说,这不是世界末日,只要你能向EC2实例发布slaveof,这涵盖了我的回答中的第1项。如果这还不够清楚,我道歉。我不知道为什么我把关于去那里的部分忘了。当然,从开始第2步的那一刻起,您将有一个增量。但是考虑到你不能复制一个DB,我相信这是你能得到的最好的。这是我建议避免使用select命令的原因之一。