gpt4 book ai didi

java - mongo 中的序列 - 可以依赖 findAndModify() 吗?

转载 作者:行者123 更新时间:2023-11-30 06:56:11 32 4
gpt4 key购买 nike

我需要一些持久性整数 Id 来执行每秒调用大约 100 次的操作。我在 Settings 集合中有一个文档,其中 id 存储在 lastId 字段中。

根据 mongodb doc我想使用带有 update: { $inc: { lastId: 1 } } 参数的 findAnyModify() 操作来实现它。我可以相信每次下一次调用都会返回一个新的(递增的)数字吗?

或者使用 java AtomicLong 计数器作为解决方法更好?它会在开始时从 mongo 读取 lastId ,并且在每次增量时我将从 mongo 写入(但不读取)?

最佳答案

如果你需要在mongodb中持久化序列,你确实需要使用运算符$inc为了在服务器端原子地增加您将用作计数器的给定字段。

如果您使用AtomicLong,您将很难保证序列的一致性(尤其是在集群环境中),这样您可能会面临多个 id 相同的情况文件。

关于java - mongo 中的序列 - 可以依赖 findAndModify() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41765034/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com