TingYu Tools

ULID 生成

按时间排序的唯一 ID

生成选项

一次生成多个 ULID(1-100)

同一毫秒内生成的 ULID 保证递增(避免乱序)

💡 使用说明

什么是 ULID?

ULID(Universally Unique Lexicographically Sortable Identifier)是一种可按时间排序的唯一标识符,结合了 UUID 的唯一性和时间戳的有序性。

特性

  • 128 位兼容性,与 UUID 长度相同
  • 按时间排序,可在数据库中建立索引
  • 使用 Crockford's Base32 编码,URL 安全
  • 每毫秒 1.21e+24 种唯一性

结构

ULID 由 48 位时间戳(毫秒精度)+ 80 位随机数组成,总共 128 位,编码为 26 个字符的 Base32 字符串。前 10 个字符表示时间,后 16 个字符是随机值。

应用场景

  • 数据库主键(可排序、有序插入)
  • 分布式系统中的有序 ID
  • 日志和事件追踪(按时间排序)
  • 替代 UUID 以获得更好的索引性能

注意事项

  • ULID 按时间排序,但不保证全局唯一性(需要足够的随机性)
  • 单调模式下,同一毫秒内生成的 ULID 会递增,避免乱序
  • ULID 使用 Crockford's Base32,区分大小写,不包含 I、L、O、U

生成的 ULID (5)

1
01K8J9CY90D5TAGJ1Z3WYDYGF8
2
01K8J9CY90TAMNXCMXWXNCDTCP
3
01K8J9CY90JEEQA2AMHDP3J2SX
4
01K8J9CY90JQ9V62JT2X5AG0MK
5
01K8J9CY90R7M8F9YMKJFRF9H3
格式信息
编码方式Crockford's Base32
总长度26 个字符
时间戳位数48 bits
随机位数80 bits
第一个时间戳2025-10-27 15:33:52.544

ULID 验证与解析