Skip to main content
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

查看 @std/ulid 中的所有符号

什么是 ULID? Jump to heading

ULID(通用唯一的按字典序排序的标识符)是一个 26 字符的字符串,用作唯一标识符。它结合了时间戳和随机数据,使其既唯一又可以按创建时间排序。ULID 设计为 URL 安全,可用于数据库和分布式系统等各种应用。

为什么使用 @std/ulid? Jump to heading

当您需要唯一且可按时间排序的 ID,且生成和共享都很方便时使用。非常适合数据库、分布式系统和面向用户的令牌。

使用小贴士 Jump to heading

  • 需要在同一毫秒内严格递增值时,请使用 monotonicUlid()
  • 可以用 decodeTime(ulid) 提取时间戳,帮助调试。

你找到了你需要的东西吗?

编辑此页面
隐私政策