生成唯一的短ID - MongoDB来管理冲突

时间:2015-05-21 18:49:26

标签: node.js mongodb

我正在评估以下代码,以便在我的Node服务器中生成一个简短的ID(灵感来自上一篇文章:Short user-freiendly ID for mongo):

> b = crypto.pseudoRandomBytes(6)
<SlowBuffer d3 9a 19 fe 08 e2>
> rid = b.readUInt32BE(0)*65536 + b.readUInt16BE(4)
232658814503138
> rid.toString(36).substr(0,8).toUpperCase()
'2AGXZF2Z'

这可能无法保证唯一性,但我的要求是使用最大长度为8个字符的短ID,并且它也必须全部为大写。这样做的目的是使ID用户友好。

为了确保没有冲突,我计划在MongoDB中创建一个集合,其中包含将短ID(将是索引字段)映射到我想要短ID的实际文档的MongoDB ObjectID上的文档参考。

这样做的最佳策略是什么,以确保在多个物理服务器上的多个进程检查短ID唯一性的并发环境中实现可伸缩性和性能?

0 个答案:

没有答案
相关问题