Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 放大Elasticache实例?_Amazon Web Services_Redis_Amazon Elasticache - Fatal编程技术网

Amazon web services 放大Elasticache实例?

Amazon web services 放大Elasticache实例?,amazon-web-services,redis,amazon-elasticache,Amazon Web Services,Redis,Amazon Elasticache,我目前正在运行一个通过Elasticache使用Redis的网站。我们希望转移到一个更大的实例,拥有更多的RAM,因为我们目前的实例类型大约有70%的内存已满 是否有一种方法可以像扩展RDS实例一样扩展Elasticache实例 或者,我想创建一个副本组并向其中添加一个更大的实例。然后,在复制并运行之后,将新实例升级为主实例。通过AWS控制台,这似乎是不可能的,因为复制副本是使用与主节点相同的实例类型创建的 是我遗漏了什么,还是仅仅是一个无法实现的用例。我知道我可以启动一个更大的实例并手动处理复

我目前正在运行一个通过Elasticache使用Redis的网站。我们希望转移到一个更大的实例,拥有更多的RAM,因为我们目前的实例类型大约有70%的内存已满

是否有一种方法可以像扩展RDS实例一样扩展Elasticache实例

或者,我想创建一个副本组并向其中添加一个更大的实例。然后,在复制并运行之后,将新实例升级为主实例。通过AWS控制台,这似乎是不可能的,因为复制副本是使用与主节点相同的实例类型创建的

是我遗漏了什么,还是仅仅是一个无法实现的用例。我知道我可以启动一个更大的实例并手动处理复制,然后将web服务器移到新服务器上使用,但由于DNS迁移等原因,这需要一些停机时间

谢谢!,
Alan

Elasticache感觉更像是memcached意义上的缓存解决方案,这意味着要扩展,您确实需要启动一个新集群并将应用程序切换到它。性能将暂时下降,因为缓存将不得不重建,但仅此而已

然而,对于许多人(我猜你也包括在内),Redis更像是一个NoSQL数据库解决方案,其中数据丢失是不可接受的。Amazon提供读取副本作为解决该问题的“解决方案”,但仍然有点不确定。当然,它提供了复制以降低数据丢失的风险,但它仍然远不及RDS for Redis数据库(相对于缓存,它非常完美)的生产安全性(或成熟性),后者提供了备份和恢复过程,以及支持扩展的结构良好的更改管理。据我所知,ElastiCache不支持更改正在运行的集群的实例类型。这表明它只是一个内存解决方案,在重新启动时会丢失所有数据


我甚至想说,如果您担心数据丢失,您应该考虑一个自滚Redis解决方案,而不是简单地使用ElastiCache。它不仅运行起来稍微便宜一些,还可以让您像在任何其他EC2实例上一样更改实例类型(当然,在停止之后)。它还允许您使用RDB或AOF持久性。

您现在可以扩展到更大的节点类型,而ElastiCache保留:


是的,您可以立即将正在运行的Elasticache实例类型扩展到更大的大小。我对它进行了测试,几乎没有经历过实际的停机时间(我想一开始只需要几秒钟,但很快它就会恢复在线,即使控制台会显示实际完成过程大约需要几分钟。)我从t2.micro到m3.medium没有问题。

您可以放大或缩小

  • 转到Elasticache服务

  • 选择群集

  • 从顶部的
    Actions
    菜单中,选择
    Modify

  • 修改
    节点类型
    ,如下所示

如果您有一个集群,则可以添加更多碎片、减少碎片数量、重新平衡插槽分布或添加更多读取副本。只需单击集群本身,您就会看到类似这样的内容

请注意,当您删除碎片时,它会自动将数据重新分发到其他现有碎片,因此会影响流量并使其他碎片过载。当您尝试删除碎片时,会收到如下警告


仍然需要更多的帮助,请随时留言,我将非常乐意提供帮助

谢谢!你是对的,我们使用Redis作为准数据库解决方案,实际上我们计划运行2台Redis服务器,其中一台服务器的作用类似于数据库前面的传统缓存。这是我们关心的第二台服务器,数据需要在其上进行扩展。我们现在正在考虑使用Scalr.com来管理我们的Redis服务器,因为它们提供读取副本和迄今为止看起来非常快速的故障切换。优点是我们可以扩展到我们想要的任何AWS实例类型。谢谢为了解决最后一点,ElastiCache Redis允许RDB快照和AOF:“Redis从机可以根据需要生成RDB快照和/或AOF附加日志,您可以将这些文件传输到S3以确保持久性。”是的,当然,我可能走得太远了。通过拆下实例并基于快照构建另一个实例来扩展,当然可以解决当前的问题。然而,我坚持我所说的:我不建议使用ElastiCache作为数据库。我怀疑亚马逊本身也会。虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。值得注意的是,这只适用于Redis集群,而不适用于memcached。