如何在NodeJS中生成像facebook,google +这样的唯一ID

时间:2012-08-15 14:42:12

标签: javascript node.js cassandra uuid

我正在使用nodeJS和cassandra

我目前正在使用UUID v1作为唯一ID

但是,我认为uuid太长了

我想生成数字唯一ID,如fb和G +,它更短

并且在插入

之前不必检查数据库中是否存在id

示例:

  

https://plus.google.com/104560124403688998123/posts

     

的Facebook / 100001458264256

我想根据一些用户细节生成它吗?

有什么好主意吗?

2 个答案:

答案 0 :(得分:1)

如果要创建具有UUID类型的colum系列,它们将以二进制形式存储,并且磁盘上只需要16个字节,这已经少于您想要的20个字节。

查看cql docs

CREATE COLUMNFAMILY MonkeyTypes (
    KEY uuid PRIMARY KEY,
    species text,
    alias text,
    population varint
)

您可以使用数据库zookeepersnowflake生成唯一的8字节ID。

答案 1 :(得分:0)

您可以尝试使用flake-idgen包来获取更短的唯一ID。

var FlakeIdGen = require('flake-idgen')
var intformat = require('biguint-format')
var generator = new FlakeIdGen;
var id1 = generator.next();
var id2 = generator.next();
var id3 = intformat(id1, 'dec'); //sample : 5829986774188818434
var id4 = intformat(id2, 'hex', {prefix:'0x'}) // sample : 0x50e8461520c00003