🛠️

Whiz Tools

Build • Create • Innovate

KSUID Generator for Unique, Time-Sortable Identifiers

Generaator K-sortitavaid unikaalseid identifikaatoreid (KSUID) jaotatud süsteemide, andmebaaside ja rakenduste jaoks, mis vajavad unikaalseid, ajaliselt sorteeritavaid võtmeid. KSUID-d ühendavad ajatempli juhuslike andmetega, et luua kokkupõrkeid vältivaid, sorteeritavaid identifikaatoreid.

KSUID generaator

📚

Dokumentatsioon

KSUID Generaator

Sissejuhatus

KSUID (K-sortitav unikaalne identifikaator) on unikaalne identifikaatori formaat, mis pakub mitmeid eeliseid traditsiooniliste UUID (universaalse unikaalse identifikaatori) ja teiste identifikaatorite süsteemide üle. See tööriist võimaldab teil kiiresti ja lihtsalt genereerida KSUID-e.

Mis on KSUID?

KSUID on 20-baitine sorteeritav identifikaator, mis koosneb:

  1. 32-bitine ajatemperatuur (4 baiti)
  2. 16 baiti juhuslikkust

Kuna KSUID esindatakse stringina, kodeeritakse see base62-s ja on 27 tähemärki pikk.

KSUID Struktuur

KSUID struktuuri saab jagada järgmistesse osadesse:

  1. Ajatempel (4 baiti): See esindab sekundite arvu alates Unix'i ajast (1. jaanuar 1970, 00:00 UTC). Ajatempel võimaldab KSUID-del olla ligikaudu sorteeritavad genereerimise aja järgi.

  2. Juhuslik komponent (16 baiti): See on krüptograafiliselt turvaline juhuslik number, mis tagab unikaalsuse isegi siis, kui mitu KSUID-d genereeritakse samas sekundis.

  3. Base62 kodeerimine: Ühendatud 20 baiti (ajatempel + juhuslik) kodeeritakse seejärel kasutades base62 (A-Z, a-z, 0-9), et toota lõplik 27-tähemärgiline string.

KSUID Valem

KSUID-d saab matemaatiliselt esitada järgmiselt:

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

Kus:

  • TT on 32-bitine ajatemperatuur
  • RR on 128-bitine juhuslik komponent
  • || tähistab ühendamist

Ajatempel TT arvutatakse järgmiselt:

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

Kus KSUID_epoch on 1400000000 (2014-05-13T16:53:20Z).

KSUID Struktuuri Diagramm

Ajatempel (4 baiti) Juhuslik komponent (16 baiti)

KSUID-de Kasutamise Juhud

KSUID-d on eriti kasulikud järgmistes stsenaariumides:

  1. Jaotatud süsteemid: Kui vajate unikaalseid identifikaatoreid mitme serveri või teenuse vahel ilma koordineerimiseta.

  2. Aja järgi sorteeritav andmed: Kui soovite sorteerida andmeid loomise aja järgi ilma eraldi ajatempli salvestamiseta.

  3. Andmebaasi võtmed: Peamisteks võtmeteks andmebaasides, eriti jaotatud andmebaasides, kus automaatselt suurenevad täisarvud ei sobi.

  4. URL-turvalised identifikaatorid: Lühikeste, unikaalsete, URL-turvaliste identifikaatorite loomiseks veebirakendustes.

  5. Logide korrelatsioon: Logi sissekannete korrelatsioon erinevates teenustes mikroteenuste arhitektuuris.

KSUID-de Eelised

KSUID-d pakuvad mitmeid eeliseid teiste identifikaatorite süsteemide üle:

  1. Sorteeritavus: Erinevalt UUID-dest saab KSUID-e sorteerida kronoloogiliselt, mis on kasulik andmebaasi indekseerimise ja logianalüüsi jaoks.

  2. Koordineerimist ei nõuta: Erinevalt automaatselt suurenevatest ID-dest saab KSUID-e genereerida iseseisvalt erinevate serverite poolt ilma kokkupõrgete riskita.

  3. Kompaktne esitus: 27 tähemärgi pikkune KSUID on stringina kompaktsem kui UUID-d.

  4. Ajatempel on sisse ehitatud: Sisse ehitatud ajatemperatuur võimaldab ajapõhist sortimist ja filtreerimist ilma eraldi ajatempli välja salvestamata.

  5. URL-turvaline: Base62 kodeerimine muudab KSUID-d URL-ides kasutamiseks ohutuks ilma täiendava kodeerimiseta.

  6. Vähenenud kokkupõrke tõenäosus: 16-baitine juhuslik komponent muudab kokkupõrkeid äärmiselt ebatõenäoliseks, isegi kõrgete genereerimiskiiruste korral.

Kuidas Seda Generaatorit Kasutada

  1. Sisestage vajadusel kõik täiendavad parameetrid (nt kohandatud ajatemperatuur).
  2. Klõpsake nuppu "Genereeri KSUID", et luua uus KSUID.
  3. Genereeritud KSUID kuvatakse väljundväljas.
  4. Saate genereerida mitu KSUID-d, kordades samme 1-3.
  5. Kasutage nuppu "Kopeeri" iga KSUID kõrval, et kopeerida see oma lõikepuhvrisse.
  6. Valikuliselt kasutage funktsiooni "Eksport", et alla laadida genereeritud KSUID-de loend.

Pidage meeles, et iga KSUID on ainulaadne ja seda tuleks kasutada ainult üks kord. Genereerige iga kord, kui vajate unikaalset identifikaatorit.

Koodinäited

Siin on näited KSUID-de genereerimisest erinevates programmeerimiskeeltes:

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

Viidatud

  1. Segmenti KSUID GitHubi hoidla: https://github.com/segmentio/ksuid
  2. "Heade unikaalsete identifikaatorite genereerimine" Peter Bourgonilt: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID Spetsifikatsioon: https://github.com/segmentio/ksuid/blob/master/README.md