1
1
两者都可以很好地扩展,但这很大程度上取决于您的用例和体系结构。 dynamodb是一个基于云的nosql存储系统,redis是一个内存中的数据结构存储。这意味着对dynamodb的查询需要往返于Amazon的服务器,而对redis的查询则需要通过RAM(因此,延迟要低得多)。 因此,您可以在Redis中存储的数据量将受到硬件上可用RAM的限制。也就是说,如果Redis或您的硬件因某种原因崩溃,您必须满足于某种程度的数据丢失。您可以通过配置redis持久性来减轻这一点,以便redis定期(每N秒或通过手动触发代码写入)写入磁盘,然后通过将这些写入复制到S3或其他位置来进一步减轻。这在某种程度上是由于I/O延迟,为了数据安全而权衡性能(取决于您的规模)。参见 the documentation for Redis persistence 和 this blog post Github工程团队提到他们出于性能原因决定删除Redis持久性。 同时,以上所有问题都由dynamodb为您抽象,因为 AWS handles availability 为你在幕后。你真的只受 how much you can afford 和用法(每秒读/写) limits . dynamodb不支持查询和插入地理空间数据(尽管 there is a library for it ,但似乎未经维护)。 Redis does .您可以为此编写自己的代码。 DynamoDB does not have support for namespacing 或者更确切地说,dynamodb是由您的aws帐户命名的,这意味着您将无法在同一个aws帐户上维护具有相同表名(例如用于生产和开发数据)的单独dynamodb实例。Redis也没有,但是你可以为此设置一个单独的Redis实例。 另请参见 Redis MEMORY USAGE command 和 Redis memory optimization 文件。 |
Cornelis · 与前一行的相对距离,以熊猫/蟒蛇为单位 2 年前 |
Simon · GeoFire-使用半径将项目保存到特定位置 6 年前 |
Mattia · 融合位置问题-地理定位不起作用 7 年前 |
moriyasamun · 如何通过代码设置地理位置 7 年前 |