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
01K8J9CY90D5TAGJ1Z3WYDYGF82
01K8J9CY90TAMNXCMXWXNCDTCP3
01K8J9CY90JEEQA2AMHDP3J2SX4
01K8J9CY90JQ9V62JT2X5AG0MK5
01K8J9CY90R7M8F9YMKJFRF9H3格式信息
编码方式Crockford's Base32
总长度26 个字符
时间戳位数48 bits
随机位数80 bits
第一个时间戳2025-10-27 15:33:52.544