ULID Generator

Tạo mã định danh duy nhất, có thứ tự theo từ điển với hiệu suất cao

0
ULIDs Generated
0
ULIDs/Second
0
Active Users

Tạo ULID

Mã định danh nhanh, hiệu quả và có thứ tự cho ứng dụng hiện đại

Tất cả dữ liệu được xử lý trong trình duyệt. Không có gì được gửi đến máy chủ.

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

Tùy chọn

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

ULID so với UUID

Tại sao ULID lại tốt hơn UUID trong nhiều tình huống?

ULID

Khuyên dùng

Sắp xếp theo thời gian

10 byte đầu là thời gian Unix có thể sắp xếp tự nhiên

Base32 của Crockford

Mã hóa hiệu quả hơn, không phân biệt chữ hoa/thường, không có ký tự đặc biệt

Tùy chọn đơn điệu

Có thể tạo ra các giá trị tăng dần đơn điệu cho cùng một mốc thời gian

Dễ đọc

Dễ dàng gỡ lỗi và đọc trong nhật ký và cơ sở dữ liệu

Ví dụ ULID:

01ARZ3NDEKTSV4RRFFQ69G5FAV

UUID

Không sắp xếp theo thời gian

Các byte ngẫu nhiên không đảm bảo thứ tự nào

Mã hóa Hex

Kém hiệu quả hơn, yêu cầu nhiều ký tự hơn cho cùng một thông tin

Không có tính đơn điệu

Không có cơ chế tích hợp cho các giá trị tăng dần đơn điệu

Khó đọc hơn

Khó phân biệt và nhận dạng trong nhật ký và cơ sở dữ liệu

Ví dụ UUID:

123e4567-e89b-12d3-a456-426614174000

So sánh hiệu suất

Tốc độ tạo ULID nhanh hơn 1.5x
ULID: ~2.5 triệu/giây UUID: ~1.7 triệu/giây
Kích thước lưu trữ ULID nhỏ hơn 27%
ULID: 26 ký tự UUID: 36 ký tự
Hiệu quả mã hóa ULID hiệu quả hơn 20%
ULID: 5 bit/ký tự (Base32) UUID: 4 bit/ký tự (Hex)

Ví dụ mã

Dưới đây là một số ví dụ mã để giúp bạn bắt đầu

JavaScript
// Node.js / Browser
// Cài đặt: npm install @ulid/javascript

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

// Tạo ULID mới
const myUlid = ulid(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"

// Tạo ULID với timestamp tùy chỉnh (milliseconds)
const customTimestamp = 1616239022000;
const ulidWithCustomTime = ulid(customTimestamp);

// Tạo ULID tăng dần (cho nhiều ID trong cùng 1ms)
import { monotonicFactory } from '@ulid/javascript';
const monotonic = monotonicFactory();
const ulid1 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
const ulid2 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R5" (tăng dần)

// Lấy timestamp từ ULID
const timestamp = ulid.decode(myUlid).time;
console.log(new Date(timestamp).toISOString());

JavaScript: npm install @ulid/javascript

Buy me a coffee