gpt4 book ai didi

java - 在集群环境中生成范围(0-100k)内的随机数

转载 作者:可可西里 更新时间:2023-11-01 10:33:36 26 4
gpt4 key购买 nike

我必须在集群环境(许多基于 Java 的无状态应用程序服务器 + Mongodb)中生成一个范围 (0-100.000) 内的随机数 - 因此每个用户请求都会获得一些唯一的数字,并将在接下来的几个请求中维护它.

据我所知,我有两个选择:1. 在 mongo 和 incrementAndGet 中保留一些数字 - 但它不是原子的 - 糟糕的选择。2. 使用 Redis - 它是原子的并且支持计数器。3.有什么想法吗?使用 UUID 并为其设置范围安全吗?4. 淡褐色?

还有其他的吗?

谢谢

最佳答案

我会利用现有的 MongoDB 基础设施并使用 MongoDB findAndModify 命令来执行原子增量和获取操作。

对于 shell,命令看起来像这样。

var result = db.ids.findAndModify( {
query: { _id: "counter" },
sort: { rating: 1 },
new : true,
update: { $inc: { counter: 1 } },
upsert : true
} );

'new : true' 返回更新后的文档。如果文档丢失,Upsert 将创建该文档。

10gen supported driverAsynchronous Driver两者都包含用于查找和修改命令的辅助方法/构建器。

关于java - 在集群环境中生成范围(0-100k)内的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927608/

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