deno.com

ULID

在 Github 上编辑

分布式系统的一个常见需求是标识符。ULID 是一种通用的、可按字典顺序排序的标识符,具有一些不错的特性。它们是 128 位的值,编码为 26 个字符的字符串,也编码了时间戳。它们与 Deno KV 非常兼容。

标准库包含一个用于生成 ULID 的函数。
import { ulid } from "jsr:@std/ulid@1";
要生成 ULID,只需调用该函数即可。
console.log(ulid());
console.log(ulid());
console.log(ulid());
ULID 也可以从时间戳生成。这对于从另一个系统迁移非常有用。
const timestamp = Date.now();
console.log(ulid(timestamp));
console.log(ulid(timestamp));
console.log(ulid(timestamp));
给定一个 ULID,您可以将时间戳取回
import { decodeTime } from "jsr:@std/ulid@1";
const myULID = ulid();
console.log(decodeTime(myULID));
可选地,如果您不在分布式系统上并且想要单调 ULID,则可以使用单调 ULID 生成器。
import { monotonicUlid } from "jsr:@std/ulid@1";
console.log(monotonicUlid(150000)); // 000XAL6S41ACTAV9WEVGEMMVR8
console.log(monotonicUlid(150000)); // 000XAL6S41ACTAV9WEVGEMMVR9
console.log(monotonicUlid(150000)); // 000XAL6S41ACTAV9WEVGEMMVRA

使用 Deno CLI 在本地运行此示例

deno run https://docs.deno.org.cn/examples/scripts/ulid.ts

其他资源

您找到所需的内容了吗?

隐私政策