ULID Generator

高性能生成通用唯一词典排序标识符

0
ULIDs Generated
0
ULIDs/Second
0
Active Users

生成 ULID

为现代应用程序提供快速、高效和可排序的标识符

所有数据都保留在您的浏览器中。不会发送到服务器。

Chưa có ULID nào được tạo

选项

Đã sao chép vào bộ nhớ tạm!

ULID 与 UUID 比较

为什么在许多情况下 ULID 比 UUID 更好?

ULID

推荐

时间可排序

前 10 个字节是自然排序的 Unix 时间

Crockford 的 Base32

更高效的编码,不区分大小写,没有特殊字符

单调递增选项

可以为相同时间戳生成单调递增的值

人类可读

在日志和数据库中更容易调试和阅读

ULID 示例:

01ARZ3NDEKTSV4RRFFQ69G5FAV

UUID

不可按时间排序

随机字节不提供任何排序保证

十六进制编码

效率较低,相同信息需要更多字符

无单调性

没有内置机制用于单调递增值

可读性较差

在日志和数据库中更难区分和识别

UUID 示例:

123e4567-e89b-12d3-a456-426614174000

性能比较

生成速度 ULID 快 1.5 倍
ULID: ~250万/秒 UUID: ~170万/秒
存储大小 ULID 小 27%
ULID: 26 个字符 UUID: 36 个字符
编码效率 ULID 效率高 20%
ULID: 5 位/字符 (Base32) UUID: 4 位/字符 (Hex)

代码示例

以下是一些代码示例,帮助您开始

JavaScript
// Node.js / 浏览器
// 安装: npm install @ulid/javascript

import { ulid } from '@ulid/javascript';

// 生成新的 ULID
const myUlid = ulid(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"

// 使用自定义时间戳创建 ULID (毫秒)
const customTimestamp = 1616239022000;
const ulidWithCustomTime = ulid(customTimestamp);

// 创建单调递增的 ULID (用于同一毫秒内的多个 ID)
import { monotonicFactory } from '@ulid/javascript';
const monotonic = monotonicFactory();
const ulid1 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
const ulid2 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R5" (递增)

// 从 ULID 提取时间戳
const timestamp = ulid.decode(myUlid).time;
console.log(new Date(timestamp).toISOString());

JavaScript: npm install @ulid/javascript

Buy me a coffee