在我们的服务上使用 DynamoDB 或 Redis

To use DynamoDB or Redis on our service

我正在实施一项新服务,我计划使用 Redis 或 DynamoDB,但不确定该选择哪一个。 工作将是这样的:

  1. 从前端获取数据并将其存储在数据库中。
  2. 如果前端再发送一个请求,则转发数据库中存储的数据,稍后删除。
  3. 否则,如果前端不再发送请求,我们可以删除存储的数据。

Redis or DynamoDB

这 2 个是不同的服务 - Redis 是 open-source、in-memory key-value 用作数据库、缓存、消息代理的数据存储,而 queue.It 是 in-memory 可用于提高数据库操作性能的缓存服务,而 DynamoDB 是完全托管的 NoSQL 数据库服务。

与将数据存储在磁盘上的 DynamodDB 数据库相比,所有 Redis 数据都驻留在 in-memory 中。与 Redis in-memory 存储相比,DynamoDB 是一个 SSD 数据库,但可以使用 DAX - DynamoDB 加速器,它是 in-memory DynamoDB 的缓存只读副本作为读取密集型负载的加速器

Get data from front-end store it in DB.

如果您对基于 No-SQL 的数据库解决方案没有问题,请使用 DynamoDB。这是推荐的数据库解决方案,适用于移动、网络、游戏、广告技术、IoT 和其他需要 low-latency 任何规模的数据访问的应用程序

If the front end sends one more request, then forward the data stored in the database and delete it later.

DynamodDB 可以使用 2 种操作模式自动扩展 1. 预配置和 2.On-demand

  1. 预配 - 如果您选择预配模式,您可以指定应用程序所需的每秒读取和写入次数。您可以使用自动缩放来自动调整 table 的配置容量以响应流量变化

  2. On-demand - 这是一个灵活的计费选项,无需容量规划即可每秒处理数千个请求。

以上两个中的任何一个都可以用于您提到的用例。

if the front end does not send one more request we can delete the data stored.

有一个 TTL(生存时间)属性 - 它允许您定义一个 per-item 时间戳以确定何时不再需要某个项目。在指定时间戳的日期和时间后不久,DynamoDB 会从您的 table 中删除项目,而不会消耗任何写入吞吐量 - 与 DynamoDB table

中的项目相关联

您可以利用它来purge/delete在一定时间后存储的数据