maj*_*rif 5 javascript node.js couchbase
我正在寻找一种为 nosql 数据库生成唯一 ID 的方法。与关系数据库不同,没有行的概念,这意味着没有最后一行可以增加。
处理此问题的最常见方法是使用UUID 的. 但我的问题是我需要添加另一个 ID(UUID除外),它需要是:
总数据可以达到50,000,000. 那么您将如何生成某种 独特的uint32 ID?
UInt32 值类型表示值范围从 0 到 4,294,967,295 的无符号整数。
这个问题已经解决了 - 我建议在 Couchbase 中使用原子增量(或减量)函数 - 这些是生成唯一 ID 的常见模式。
incr()每当调用该方法时,它都会以原子方式将计数器递增指定的值,并返回旧值,因此如果两个客户端尝试同时递增是安全的。
伪代码示例(我不是 Node.JS 专家!):
// Once, at the beginning of time we init the counter:
client.set("user::count", 0);
...
// Then, whenever a new user is needed:
nextID = client.incr("user::count", 1); // increments counter and returns 'old' value.
newKey = "user_" + nextID;
client.add(newKey, value);
Run Code Online (Sandbox Code Playgroud)
请参阅Node.JS SDK以获取参考,并参阅Couchbase 开发人员指南中的使用参考文档进行查找部分以获取完整的使用示例。
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |