Dynamodb 与 Redis

Joo*_*onT 27 amazon-web-services redis amazon-dynamodb

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

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

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

这就是为什么我正在考虑选择Amazon DynamoDB.
因为DynamoDB是NoSQL,所以插入/删除非常快(比Redis慢,但我们不需要那么快),并且永久存储数据。

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

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

谢谢。

Rom*_*kin 39

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/

  • 早期版本的 Redis 缺乏耐用性。AWS MemoryDB 提供与 Redis 相同性能的耐用性。MemoryDB 更接近 DynamoDB 提供的功能。AWS MemoryDb 构建在 Redis 引擎之上。https://aws.amazon.com/memorydb/ (10认同)