浅谈ULID

背景

ULID全称为Universally Unique Lexicographically Sortable Identifier,即通用唯一词典分类标识符。它的原始仓库是https://github.com/ulid/javascript,该项目由前端开发者alizain发起,基于JavaScript语言编写。现如今对于标识符的方案多为UUID,但一些开发者认为主流的UUID方案在许多场景下可能不是最优的,于是ULID出现了。

ULID与UUID的对比

UUID的缺陷

UUID目前有五个版本,各有缺陷:

  • v1:需要访问唯一的,稳定的MAC地址,在许多环境中是不切实际的
  • v2:相较于v1,仅仅只是把v1的时间戳前四位替换为POSIX的UID或GID,问题与v1相同
  • v3:基于MD5哈希算法生成,生成随机分布的ID需要唯一的种子,可能导致许多数据结构碎片化
  • v4:基于随机数或伪随机数生成,除了随机性外没有提供其他信息,且随机性可能会在许多数据结构中导致碎片
  • v5:通过SHA-1哈希算法生成,与v3问题一致

总结下来就是:UUID的v1/v2实现依赖唯一稳定MAC地址不现实,v3/v4/v5实现因为随机性产生的ID会“碎片化”。

ULID的特点

基于UUID的缺陷,提出了ULID,使用时如下所示:

u
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值