Dynamodb与Redis比较
Dynamodb与Redis比较
我们正在使用AWS,考虑在我们的新服务中使用DynamoDB
或Redis
。
以下是我们服务的特点:
- 每分钟发生的插入/删除数量在数百到数千之间,并且未来将更大。
- 我们不需要快速搜索,只需要通过键找到值。
- 数据不应该丢失。
- 还有另外一些数据,与
1
不同,这些数据没有很多的插入/删除。
我担心当Redis
服务器失效时。
当出现Redis
故障时,我们的数据将被删除。
这就是为什么我考虑选择Amazon DynamoDB
的原因。
因为DynamoDB
是NoSQL,所以插入/删除非常快(比Redis慢,但我们不需要那么快的速度),并且可以永久存储数据。
但我不确定我的想法是否正确。
如果我想错了或忽略了其他重要的点,请指出,非常感谢。
谢谢。
在AWS ElastiCache服务中,有两种Redis部署类型:
- 独立式
- 多AZ群集
通过独立式安装,可以为Redis实例开启持久性,因此服务可以在重新启动后恢复数据。但在某些情况下,如底层硬件退化,AWS可能会将Redis迁移到另一个实例并丢失持久日志。
在多AZ群集安装中,不可能启用持久性,只会发生复制。在故障的情况下,需要一段时间将副本提升为主状态。另一种方法是在应用程序中直接使用主和从端点,这很复杂。在导致重新启动两个Redis节点的故障情况下,也可能丢失整个集群配置的所有数据。
因此,从总体上讲,Redis并不提供高数据持久性,但提供了非常好的性能。
DynamoDB是一种高度可用和可靠的数据存储。在内部,它将数据复制到几个可用区,因此默认情况下高度可用。它还是完全托管的AWS服务,因此无需关心集群、节点、监视等,这被认为是正确的云方式。
DynamoDB按R/W操作(按需或预留容量模型)和存储数据量计费。它可能对服务测试非常便宜,但在重负载下更加昂贵。您应该仔细分析您的工作负载并计算总服务成本。
至于性能:与Redis内存存储相比,DynamoDB是一种SSD数据库,但可以使用DAX-DynamoDB的内存缓存读取副本作为重负载加速器。因此,您不会严格受到DynamoDB性能的限制。
这里是 DynamoDB 价格计算器的链接,它是服务使用中最复杂的部分之一:https://aws.amazon.com/dynamodb/pricing/