Dynamo DB 中的自动递增计数器

我正在尝试在 dynamo db 中为哈希键实现自动递增计数器,但我的代码对于并发事务失败。任何帮助实现该功能将不胜感激。我是堆叠流的新人可能无法正确指定它。任何实现都会有所帮助。


答案 1

您有两种选择,一种是使用 dynamo db 原子计数器,另一种是在递增计数器时使用乐观锁定。

原子计数器的文档:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.AtomicCounters

乐观锁定文档:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.OptimisticLocking.html


答案 2

您还可以使用条件写入来检查当前存储的计数器值与要写入的值,例如检查当前计数是否为 N-1 新值 N。

我更喜欢这种方法,因为它将递增计数器的逻辑推送到您的应用程序,但对正确持久性的最终检查是使用 DynamoDB。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.ConditionalUpdate


推荐