On this page
@std/ulid
概述 Jump to heading
用于生成和操作 通用唯一的按字典序排序的标识符(ULIDs)的工具。
要生成 ULID,请使用 ulid 函数。该函数将基于当前时间生成 ULID。
import { ulid } from "@std/ulid";
ulid(); // 01HYFKMDF3HVJ4J3JZW8KXPVTY
ulid 不保证在相同当前时间内生成的 ULID 会严格递增。如果您需要保证即使在相同当前时间内 ULID 也严格递增,请使用
monotonicUlid 函数。
import { monotonicUlid } from "@std/ulid";
monotonicUlid(); // 01HYFKHG5F8RHM2PM3D7NSTDAS
monotonicUlid(); // 01HYFKHG5F8RHM2PM3D7NSTDAT
由于每个 ULID 都编码了其生成时间,您可以使用 decodeTime 函数从 ULID 中提取时间戳。
import { decodeTime, ulid } from "@std/ulid";
import { assertEquals } from "@std/assert";
const timestamp = 150_000;
const ulidString = ulid(timestamp);
assertEquals(decodeTime(ulidString), timestamp);
添加到您的项目 Jump to heading
deno add jsr:@std/ulid
什么是 ULID? Jump to heading
ULID(通用唯一的按字典序排序的标识符)是一个 26 字符的字符串,用作唯一标识符。它结合了时间戳和随机数据,使其既唯一又可以按创建时间排序。ULID 设计为 URL 安全,可用于数据库和分布式系统等各种应用。
为什么使用 @std/ulid? Jump to heading
当您需要唯一且可按时间排序的 ID,且生成和共享都很方便时使用。非常适合数据库、分布式系统和面向用户的令牌。
使用小贴士 Jump to heading
- 需要在同一毫秒内严格递增值时,请使用
monotonicUlid()。 - 可以用
decodeTime(ulid)提取时间戳,帮助调试。