Dynamodb vs Redis

时间:2019-07-03 12:36:35

标签: amazon-web-services redis amazon-dynamodb

我们正在使用AWS,并考虑在我们的新服务中使用DynamoDBRedis
以下是我们服务的字符

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

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

这就是为什么我要选择Amazon DynamoDB
因为DynamoDB是NoSQL,所以插入/删除是如此之快(比Redis慢,但我们不需要那么快),并且可以永久存储数据。

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

如果我想错了或者没有想到另一个重要点,那么当你们教我的时候我会很感激。

谢谢。

1 个答案:

答案 0 :(得分:8)

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

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

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

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

因此,通常来说,Redis不能提供很高的数据持久性,却可以提供很好的性能。

DynamoDB 是高度可用的持久存储数据。它在内部将数据复制到几个可用性区域,因此默认情况下它具有高可用性。它也是完全托管的AWS服务,因此您不必关心群集,节点,监视...等,它们被认为是正确的云计算方式。

Dynamo DB通过R / W操作(按需或保留容量模型)和存储的数据量进行充电。对于服务的测试而言,In可能真的很便宜,但是在繁重的负载下,它要昂贵得多。您应该仔细分析您的工作量并计算总服务成本。

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

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