【发布时间】:2014-05-08 10:18:56
【问题描述】:
将 Rails 应用程序基础架构从一个托管区域一点点迁移到另一个托管区域(只有公共互联网链接它们)我需要将 Redis 实例从一侧迁移到另一侧。
而不是转储数据(即使很小:只是队列),我更喜欢使用主从设置来确保没有任何东西丢失并且我们没有任何停机时间。
互联网说 SSH 是我的朋友。
Old1 是托管主 Redis 服务器的旧服务器。 Redis那里绑定了服务器的私网IP。
New1 是托管新 Redis 服务器的新服务器。
在 New1 上,我设置了 ssh 隧道/端口转发:
ssh -L 7380:<private_old1_ip>:6379 username@old1.publicname.ex
仍然在 New1 上,我检查是否可以连接到两个实例:
redis-cli -p 6379
redis-cli -p 7380
在这两个基地中,信息都有效。
在 New1:Redis 上,通过 redis-cli 我设置了从属模式:
salveof localhost 7380
现在这里是 New1:Redis 上的信息:
# Replication
role:slave
master_host:localhost
master_port:7380
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:1399544048
slave_priority:100
slave_read_only:1
connected_slaves:0
虽然 Old1:Redis(仍然通过隧道):
# Replication
role:master
connected_slaves:1
slave0:<private_old1_ip>,6379,online
所以隧道已经开通,并且正在运行。 有大量可用内存。 从站显示在 Old1 端连接(但显示为 Old1 ip)。 从站说主链路状态为关闭,同步未在进行中。
我错过了什么?
【问题讨论】:
标签: redis