🛠️

Whiz Tools

Build • Create • Innovate

Ustvarite K-sortne unikatne identifikatorje KSUID za sisteme

Ustvarite K-sortne unikatne identifikatorje (KSUID) za uporabo v distribuiranih sistemih, podatkovnih bazah in aplikacijah, ki zahtevajo unikatne, časovno sortne ključe. KSUID združujejo časovni žig z naključnimi podatki, da ustvarijo identifikatorje, odporne na kolizije in sortne.

Generator KSUID

📚

Dokumentacija

KSUID Generator

Uvod

KSUID (K-sortabilni unikatni identifikator) je format unikatnega identifikatorja, ki ponuja več prednosti v primerjavi s tradicionalnim UUID (univerzalni unikatni identifikator) in drugimi sistemi identifikatorjev. Ta orodja omogočajo hitro in enostavno generiranje KSUID-ov.

Kaj je KSUID?

KSUID je 20-bajtni sortabilni identifikator, ki se sestoji iz:

  1. 32-bitnega časovnega žiga (4 bajti)
  2. 16 bajtov naključnosti

Ko je predstavljen kot niz, je KSUID kodiran v base62 in je dolg 27 znakov.

Struktura KSUID-a

Struktura KSUID-a je razdeljena na naslednje dele:

  1. Časovni žig (4 bajti): To predstavlja število sekund od Unixove dobe (1. januar 1970, ob 00:00 UTC). Časovni žig omogoča, da so KSUID-i približno sortabilni po času generiranja.

  2. Naključna komponenta (16 bajtov): To je kriptografsko varen naključni števil, ki zagotavlja unikatnost, tudi ko je več KSUID-ov generiranih v istem trenutku.

  3. Base62 kodiranje: Kombiniranih 20 bajtov (časovni žig + naključni) je nato kodiranih z uporabo base62 (A-Z, a-z, 0-9), da se ustvari končni 27-znakovni niz.

Formula KSUID

KSUID lahko matematično predstavimo kot:

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

Kjer:

  • TT je 32-bitni časovni žig
  • RR je 128-bitna naključna komponenta
  • || označuje konkatenacijo

Časovni žig TT se izračuna kot:

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

Kjer je KSUID_epoch 1400000000 (2014-05-13T16:53:20Z).

Diagram strukture KSUID-a

Časovni žig (4 bajti) Naključna komponenta (16 bajtov)

Uporabniški primeri za KSUID-e

KSUID-i so še posebej uporabni v naslednjih scenarijih:

  1. Porazdeljeni sistemi: Ko potrebujete unikatne identifikatorje preko več strežnikov ali storitev brez usklajevanja.

  2. Časovno sortabilni podatki: Ko želite sortirati podatke po času ustvarjanja, ne da bi shranjevali ločen časovni žig.

  3. Ključi v podatkovnih bazah: Kot primarni ključi v podatkovnih bazah, zlasti v porazdeljenih podatkovnih bazah, kjer avto-increment številke niso primerne.

  4. URL-varni identifikatorji: Za ustvarjanje kratkih, unikatnih, URL-varnih identifikatorjev za vire v spletnih aplikacijah.

  5. Korelacija dnevnikov: Za korelacijo vnosov dnevnikov preko različnih storitev v arhitekturi mikroservisov.

Prednosti KSUID-ov

KSUID-i ponujajo več prednosti v primerjavi z drugimi sistemi identifikatorjev:

  1. Sortabilnost: Za razliko od UUID-ov, KSUID-i lahko kronološko sortira, kar je koristno za indeksiranje podatkov in analizo dnevnikov.

  2. Ni potrebno usklajevanje: Za razliko od avto-increment ID-jev, KSUID-e lahko generirajo neodvisno različni strežniki brez tveganja za kolizije.

  3. Kompaktna predstavitev: Pri 27 znakih so KSUID-i bolj kompaktni od UUID-ov, ko so predstavljeni kot nizi.

  4. Vgrajen časovni žig: Vgrajeni časovni žig omogoča časovno osnovano sortiranje in filtriranje brez potrebe po ločenem polju časovnega žiga.

  5. URL-varno: Base62 kodiranje naredi KSUID-e varne za uporabo v URL-jih brez dodatnega kodiranja.

  6. Zmanjšana verjetnost kolizij: 16-bajtna naključna komponenta naredi kolizije izjemno malo verjetne, tudi pri visokih stopnjah generiranja.

Kako uporabljati to orodje za generiranje

  1. Vnesite morebitne dodatne parametre, če je potrebno (npr. po meri časovni žig).
  2. Kliknite gumb "Generiraj KSUID", da ustvarite nov KSUID.
  3. Generirani KSUID bo prikazan v izhodnem polju.
  4. Več KSUID-ov lahko generirate tako, da ponovite korake 1-3.
  5. Uporabite gumb "Kopiraj" poleg vsakega KSUID-a, da ga kopirate v odložišče.
  6. Po želji uporabite funkcijo "Izvozi", da prenesete seznam generiranih KSUID-ov.

Ne pozabite, da je vsak KSUID edinstven in ga je treba uporabiti le enkrat. Generirajte nov KSUID vsakič, ko potrebujete unikatni identifikator.

Kode Primeri

Tukaj so primeri generiranja KSUID-ov v različnih programskih jezikih:

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

Reference

  1. Segmentov KSUID GitHub repozitorij: https://github.com/segmentio/ksuid
  2. "Generiranje dobrih unikatnih identifikatorjev" avtorja Peter Bourgon: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID specifikacija: https://github.com/segmentio/ksuid/blob/master/README.md