我们正在使用AWS,并考虑在我们的新服务中使用DynamoDB
或Redis
。
以下是我们服务的字符
1
不同,还有另一个没有很多插入/删除数据。我担心Redis
服务器何时停机。
当Redis
失败时,我们的数据将被删除。
这就是为什么我要选择Amazon DynamoDB
。
因为DynamoDB
是NoSQL,所以插入/删除是如此之快(比Redis慢,但我们不需要那么快),并且可以永久存储数据。
但是我不确定我的想法是否正确。
如果我想错了或者没有想到另一个重要点,那么当你们教我的时候我会很感激。
谢谢。
答案 0 :(得分:8)
AWS ElastiCache服务中有两种Redis部署类型:
使用独立安装,可以为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/