使用 Lambda 的 DynamoDB 在插入时更新 Redis 缓存

DynamoDB with Lambda to update Redis cache on Insertions

我有一个 DynamoDB table,我启用了 Dynamo Stream。 我希望我的应用程序能够在被询问时响应前 100 个事件(按日期)。

为此,我想到编写一个 Lambda 函数,每当新数据流式传输时都会执行该函数,并用新事件更新 Redis 缓存(以防万一它真的是一个事件) .

Lambda 代码:

  1. 从缓存中读取当前的 top100 事件。
  2. 将新事件推到数组的开头。
  3. 从数组中切出前 100 个事件。
  4. 更新缓存。

让我担心的一件事是竞争条件,当以上 Lambda 函数的多个实例将使用不同的流记录执行时。

我找不到更多关于 Dynamo Streams 工作原理的信息,所以我什至不确定上述情况是否会发生,这就是我问你的原因。

你的问题可以通过你如何定义你的redis操作来解决。

Redis 是单线程的,您可以在单个 Redis 事务中定义完整的缓存更新操作。