您当前的位置:首页 > 科普小常识 > 正文

uid批量生成,无冲突的uuid生成工具

关于【uid批量生成】,今天向乾小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

uid批量生成,无冲突的uuid生成工具

ksuid是一个高效,全面,经过测试的Go库,用于生成和解析一种称为KSUID的特定类型的全局唯一标识符。

安装

go get -u github.com/segmentio/ksuid

什么是KSUID?

KSUID用于K稳定唯一标识符。它是一种类似于RFC 4122 UUID的全局唯一标识符,它是从头开始构建的,可以按生成时间戳“自然”排序,而无需任何特殊的类型识别逻辑。

简而言之,通过UNIX sort命令将按生成时间排序的一组KSUID列表。

为什么要使用KSUID?

生成唯一标识符的方法有很多,那么为什么要使用KSUID?

自然地按生成时间排序无冲突,无协调,无依赖高度可移植

即使只有这些属性中的一项对您很重要,KSUID也是一个不错的选择!:)许多项目选择使用KSUID只是因为文本表示形式易于复制和粘贴。

按生成时间自然排序

与普遍使用的UUIDv4不同,KSUID包含时间戳组件,该组件使它们可以按生成时间进行松散排序。二进制表示形式和文本表示形式都将按创建时间进行排序,而无需任何特殊的排序逻辑。

2.无冲突,无协调,无依赖

尽管RFC 4122 UUIDv1确实包含了时间分量,但是没有足够的随机字节来提供强大的保护以防止冲突(重复)。借助如此低的熵,恶意方猜测生成的ID是可行的。

为了适应64位数字空间,Snowflake ID 及其派生要求进行协调以避免冲突,这大大增加了部署的复杂性和操作负担。

KSUID包括128位伪随机数据(“熵”)。此数字空间比公认的RFC 4122 UUIDv4标准使用的122位大64倍。附加的时间戳分量可以被认为是“附加熵”,其进一步减小了碰撞的可能性,以至于在任何实际实现中都是物理上不可行的。

高度可移植

文本和二进制表示形式可按字典顺序排序,这使它们可以放入本机不支持KSUID并保留其按时间顺序排列的属性的系统中。

文本表示形式是字母数字base62编码,因此它“适合”任何可接受的字母数字字符串。由于不使用任何定界符,因此,当字符串格式的KSUID由专为人类可读的文本设计的软件进行表示时,不会被无意地截断或标记化,这是RFC 4122 UUID文本表示的常见问题。

KSUID如何工作?

二进制KSUID为20字节:32位无符号整数UTC时间戳和128位随机生成的有效负载。时间戳使用big-endian编码,以支持字典排序。时间戳记时间调整为2014年3月5日,使用寿命超过100年。有效负载由加密强度高的伪随机数生成器生成。

文本表示形式始终是27个字符,以字母数字base62编码,将按时间戳按字典顺序排序。

安装命令行客户端

go install github.com/segmentio/ksuid/cmd/ksuid

生成KSUID

$ ksuid0ujsswThIGTUYm2K8FjOOfXtY1K

生成多个KSUIDs

$ ksuid -n 40ujsszwN8NRY24YaXiTIE2VWDTS0ujsswThIGTUYm2K8FjOOfXtY1K0ujssxh0cECutqzMgbtXSGnjorm

,

本文关键词:批量生成uuid,ui代码自动生成,uuid生成工具,ua批量生成,uuid生成代码。这就是关于《uid批量生成,无冲突的uuid生成工具》的所有内容,希望对您能有所帮助!


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 博鳌在哪里,海南地图博鳌在哪里(海南环岛自驾游:博鳌)

下一篇: 中国最好的新地标,爱了终于等到你



推荐阅读