🛠️

Whiz Tools

Build • Create • Innovate

Generate K-Sortable Unique Identifiers (KSUIDs) Easily

Hasilkan Pengenal Unik Boleh Susun K (KSUID) untuk digunakan dalam sistem teragih, pangkalan data, dan aplikasi yang memerlukan kunci unik yang boleh disusun mengikut masa. KSUID menggabungkan cap waktu dengan data rawak untuk mencipta pengenal yang tahan terhadap perlanggaran dan boleh disusun.

Penjana KSUID

📚

Dokumentasi

Penjana KSUID

Pengenalan

KSUID (K-Sortable Unique IDentifier) adalah format pengenalan unik yang menawarkan beberapa kelebihan berbanding UUID (Universally Unique Identifier) tradisional dan sistem pengenalan lain. Alat ini membolehkan anda menjana KSUID dengan cepat dan mudah.

Apa itu KSUID?

KSUID adalah pengenalan boleh disusun 20-byte yang terdiri daripada:

  1. Timestamp 32-bit (4 byte)
  2. 16 byte rawak

Apabila diwakili sebagai string, KSUID dikodkan dalam base62 dan mempunyai panjang 27 aksara.

Struktur KSUID

Struktur KSUID boleh dibahagikan seperti berikut:

  1. Timestamp (4 byte): Ini mewakili bilangan saat sejak epoch Unix (1 Januari 1970, pada 00:00 UTC). Timestamp membolehkan KSUID disusun secara kasar mengikut masa penjanaan.

  2. Komponen Rawak (16 byte): Ini adalah nombor rawak yang selamat secara kriptografi yang memastikan keunikan walaupun banyak KSUID dijana dalam saat yang sama.

  3. Pengkodan Base62: Gabungan 20 byte (timestamp + rawak) kemudian dikodkan menggunakan base62 (A-Z, a-z, 0-9) untuk menghasilkan string akhir sepanjang 27 aksara.

Formula KSUID

KSUID boleh diwakili secara matematik sebagai:

KSUID=Base62(TR)KSUID = Base62(T || R)

Di mana:

  • TT adalah timestamp 32-bit
  • RR adalah komponen rawak 128-bit
  • || menunjukkan penggabungan

Timestamp TT dikira sebagai:

T = \text{floor}(\text{current_time} - \text{KSUID_epoch})

Di mana KSUID_epoch adalah 1400000000 (2014-05-13T16:53:20Z).

Diagram Struktur KSUID

Timestamp (4 byte) Komponen Rawak (16 byte)

Kes Penggunaan untuk KSUID

KSUID sangat berguna dalam senario berikut:

  1. Sistem Teragih: Apabila anda memerlukan pengenalan unik merentasi pelayan atau perkhidmatan yang berbeza tanpa penyelarasan.

  2. Data Boleh Disusun Mengikut Masa: Apabila anda ingin menyusun data mengikut masa penciptaan tanpa menyimpan medan timestamp yang berasingan.

  3. Kunci Pangkalan Data: Sebagai kunci utama dalam pangkalan data, terutamanya dalam pangkalan data teragih di mana integer auto-peningkatan tidak sesuai.

  4. Pengenalan Selamat URL: Untuk mencipta pengenalan unik yang pendek dan selamat untuk URL bagi sumber dalam aplikasi web.

  5. Korelasi Log: Untuk mengaitkan entri log merentasi pelbagai perkhidmatan dalam seni bina mikrosistem.

Kelebihan KSUID

KSUID menawarkan beberapa kelebihan berbanding sistem pengenalan lain:

  1. Boleh Disusun: Tidak seperti UUID, KSUID boleh disusun secara kronologi, yang berguna untuk pengindeksan pangkalan data dan analisis log.

  2. Tiada Penyelarasan Diperlukan: Tidak seperti ID auto-peningkatan, KSUID boleh dijana secara bebas oleh pelayan yang berbeza tanpa risiko pertindihan.

  3. Representasi Kompak: Pada 27 aksara, KSUID lebih kompak daripada UUID apabila diwakili sebagai string.

  4. Timestamp Tertanam: Timestamp yang tertanam membolehkan penyusunan dan penapisan berdasarkan masa tanpa memerlukan medan timestamp yang berasingan.

  5. Selamat untuk URL: Pengkodan base62 menjadikan KSUID selamat untuk digunakan dalam URL tanpa pengkodan tambahan.

  6. Kebarangkalian Pertindihan yang Dikurangkan: Komponen rawak 16 byte menjadikan pertindihan sangat tidak mungkin, walaupun pada kadar penjanaan yang tinggi.

Cara Menggunakan Penjana Ini

  1. Masukkan sebarang parameter tambahan jika diperlukan (contohnya, timestamp khusus).
  2. Klik butang "Jana KSUID" untuk mencipta KSUID baru.
  3. KSUID yang dijana akan dipaparkan dalam medan output.
  4. Anda boleh menjana beberapa KSUID dengan mengulangi langkah 1-3.
  5. Gunakan butang "Salin" di sebelah setiap KSUID untuk menyalinnya ke papan klip anda.
  6. Secara pilihan, gunakan ciri "Eksport" untuk memuat turun senarai KSUID yang dijana.

Ingat bahawa setiap KSUID adalah unik dan hanya boleh digunakan sekali. Jana KSUID baru setiap kali anda memerlukan pengenalan unik.

Contoh Kod

Berikut adalah contoh menjana KSUID dalam pelbagai bahasa pengaturcaraan:

1## Python
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"KSUID yang dijana: {new_id}")
6

Rujukan

  1. Repositori KSUID GitHub Segment: https://github.com/segmentio/ksuid
  2. "Menghasilkan pengenalan unik yang baik" oleh Peter Bourgon: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. Spesifikasi KSUID: https://github.com/segmentio/ksuid/blob/master/README.md