2016-06-13 135 views
6

首先让我们来列举一些事实:迁移到Redis的AWS Elasticache用最少的停机时间

  • Elasticache不能成为我现有的Redis设置的奴隶。真正的耻辱,那会更有效率。
  • 我只有一台Redis服务器进行迁移,大约有3GB的数据。
  • 停机时间必须小于10分钟。我假设通常的“停止站点,停止redis,提供快照集群”将花费比这更长的时间。

这个问题类似:How do I set an elasticache redis cluster as a slave?如何这可能工作

一个想法:

  1. 集的Redis使用的AOF和触发BGSAVE在同一时间。
  2. 当BGSAVE完成时,使用RDB种子设置Elasticache群集。
  3. 停止该站点并关闭我的本地Redis实例。
  4. 使用aof-replay工具将AOF重播到Elasticache中。
  5. 再次启动站点,指向Elasticache群集。

我的问题:

  1. 我怎么能保证我的AOF文件开始在准确的RDB文件结束点,并且没有数据之间写成?
  2. 是否存在被Redis的的维护支持的AOF工具,或者是他们所有第三方解决方案,以及可靠性值得怀疑,因此(潜在的)?*

*无犯罪意图的这种工具的任何作家,我相信他们很棒,我只是觉得使用由同一个团队编写的工具来避免潜在的兼容性错误更有信心。

+0

您的应用程序可否在没有Redis的情况下运行?它会慢吗(当然不能访问缓存)还是会失败? –

+0

您的用户一夜之间活跃多久? 3 am-5am?那时候,我将迁移生产应用程序中的一项重大更改,以适应我们的业务用户。即使您的应用程序全天候使用,如果您在迁移过程中脱机30分钟,则可能会计划使用率较低,以最大限度地减少注意到的影响。 –

+0

没有Redis的应用程序基本没用,并且没有真正的日常使用模式。这是一个24小时内持续加载的应用程序。是什么让你猜测它只有30分钟的停机时间? – arrtchiu

回答

3

我只有一个Redis的服务器迁移,数据

我将停止大约3GB,Redis的保存到S3,然后将其上传到一个新的集群。

我猜测10分钟来保存文件并将其存入s3。
10分钟即可从该数据启动弹性群集。 剩下十分钟来配置和测试。

但是有一个简单的方法可以确切地知道多久。 对其进行测试迁移。

  1. 不停止你的生活系统
  2. 运行BGSAVE,让你的Redis的转储(保留一切运行正常)
  3. 移动转储S3
  4. 推出了它的elasticache集群。

拿详细笔记,TIME每一步,将命令复制到记事本窗口。

把一个Word/Excel文档,所以你有一个迁移文件。这样你就知道需要多长时间,并且没有任何意外。让我们知道怎么回事。

0

有几种方法可以在不停机的情况下迁移数据。虽然他们很难实现。

  1. 您可以让您的应用程序同时写入两个redis实例 - 其中一个应用于EC。一旦缓存“温暖”,你就可以重新启动你的应用程序,并从EC缓存中读取。

  2. 您最初可以迁移到EC2而不是EC。不是真的你想听到的,我想象。这很容易做到,因为您可以将EC2设置为您的redis实例的补救。另外,从EC2迁移到EC更容易一些(数据已经在AWS上),所以对于拥有大量数据的用户来说,这是一个好处。

  3. 理论上,您可以拦截来自客户端的命令并将它们发送给EC,从而有效地“复制”。但是这需要一些编程(我不相信像这样的工具存在自动取款机),并将与多个短暂的客户很难。

相关问题