我有一个 DynamoDB
表,我在其中启用了 Dynamo Stream
。
我希望我的应用程序能够在被询问时响应前 100 个事件(按日期)。
为此,我考虑编写一个 Lambda
函数,每当新数据流式传输时都会执行该函数,并使用新事件更新 Redis
缓存(如果是)确实是一个事件)。
Lambda 代码:
- 从缓存中读取当前前 100 个事件。
- 将新事件推送到数组的开头。
- 从数组中分割前 100 个事件。
- 更新缓存。
让我担心的一件事是,当使用不同的流记录执行上述 Lambda
函数的 1 个以上实例时,会出现竞争条件。
我找不到有关 Dynamo Streams
工作原理的更多信息,因此我什至不确定是否会发生上述情况,这就是我向您询问的原因。
最佳答案
你的问题可以通过定义你的redis操作来解决。
Redis 是单线程的,您可以在单个 Redis 事务中定义完整的缓存更新操作。
关于amazon-web-services - DynamoDB 与 Lambda 在插入时更新 Redis 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897086/