如何将Heroku中的RedisToGo数据库复制到本地机器?

时间:2012-06-20 10:28:27

标签: node.js heroku redis redistogo

我有一个node.js应用程序,使用RedisToGo并在Heroku中运行。我想将Redis To Go数据库复制到localhost进行测试。

在开发Ruby on Rails应用程序时,我可以使用heroku db:pull命令。是否有类似的命令我可以用于node.js和Redis?

感谢。

3 个答案:

答案 0 :(得分:4)

您可以将本地Redis实例从属于RedisToGo实例 - http://redistogo.com/documentation/exporting

答案 1 :(得分:4)

可以从redistogo支持知识库获得的指南,但它已被删除,我使用后台机器抓住它的内容并提出要点:https://gist.github.com/mmcdaris/29cfe920c846ae6dd5c6eb354c9abdd2 同样的结果不同的方法。

答案 2 :(得分:1)

这些是我为Heroku Redis实例创建本地备份所采取的步骤,但这应该对其他提供商如RedisToGo和RedisCloud有效。

在您要进行备份的计算机上,跳转到redis CLI:

redis-cli

密码

如果您的主Redis DB(您要复制的主机)有密码:

config set masterauth <password>

开始复制

运行以下命令开始复制:

SLAVEOF <host> <port>

要检查复制是否正在运行:

INFO replication

你应该看到这样的事情:

# Replication
role:slave
master_host:some-host.compute-1.amazonaws.com
master_port:6519
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:35492914
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

请注意,master_link_status应为up

检查同步进度

同步完成后,INFO replication应显示:

master_sync_in_progress:0

要感知检查数据集是否已同步,您可以比较数据库的大小:

DBSIZE

将数据转储保存到磁盘

考虑到跟随者和按键中的按键数量。主数据库匹配,然后将数据库保存到磁盘:

BGSAVE
CONFIG GET dir

您应该找到config命令列出的dump.rdb

停止复制

最后,您可以使用以下命令停止复制:

SLAVEOF NO ONE

参考:Redis replication guide