首页 > 解决方案 > Dynamodb 与 Redis

问题描述

我们正在使用 AWS,并考虑在我们的新服务上使用DynamoDB或。 以下是我们服务的特点 Redis

  1. 插入/删除每分钟发生数百到数千次,以后会更大。
  2. 我们不需要快速搜索,只需要用key找到一个值
  3. 数据不应丢失。
  4. 还有另一个数据没有很多插入/删除,不像1.

我担心Redis服务器何时关闭。
Redis失败时,我们的数据将被删除。

这就是我考虑选择的原因Amazon DynamoDB
因为DynamoDB是 NoSQL,所以 Insert/Delete 非常快(比 Redis 慢,但我们不需要那么快),并且永久存储数据。

但我不确定我的想法是否正确。

如果我想错了或者不认为另一个重要的点,当你们教我时,我会很感激。

谢谢。

标签: amazon-web-servicesredisamazon-dynamodb

解决方案


AWS ElastiCache 服务中有两种类型的 Redis 部署:

  1. 独立
  2. 多可用区集群

通过独立安装,可以为 Redis 实例打开持久性,因此服务可以在重启后恢复数据。但在某些情况下,比如底层硬件降级,AWS 可以将 Redis 迁移到另一个实例并丢失持久性日志。

在多可用区集群安装中,无法启用持久性,只能进行复制。如果发生故障,将副本提升到主状态需要一段时间。另一种方法是直接在应用程序中使用主从端点,这很复杂。如果发生导致两个 Redis 节点同时重新启动的故障,也可能会丢失集群配置的所有数据。

因此,一般来说,Redis 不提供数据的高持久性,但提供了非常好的性能。

DynamoDB是您数据的高可用性和持久存储。在内部,它将数据复制到几个可用区,因此默认情况下它是高可用的。它也是完全托管的 AWS 服务,因此您无需关心集群、节点、监控......等,这是一种正确的云方式。

Dynamo DB 按 R/W 操作(按需或预留容量模型)和存储数据量收费。测试服务可能真的很便宜,但在重负载下要贵得多。您应该仔细分析您的工作量并计算总服务成本。

至于性能:与 Redis 内存存储相比,DynamoDB 是一个 SSD 数据库,但可以使用 DAX - DynamoDB 的内存缓存只读副本作为重负载的加速器。因此,您不会受到 DynamoDB 性能的严格限制。

这是 DynamoDB 定价计算器的链接,这是服务使用中最复杂的部分之一:https ://aws.amazon.com/dynamodb/pricing/


推荐阅读