🛠️

Whiz Tools

Build • Create • Innovate

KSUID ģeneratori unikālo identifikatoru izveidei

Ģenerējiet K-sortējamus unikālos identifikatorus (KSUID) lietošanai izplatītajās sistēmās, datu bāzēs un lietojumprogrammās, kas prasa unikālus, laika sortējamus atslēgas. KSUID apvieno laika zīmogu ar nejaušiem datiem, lai izveidotu sadursmēm izturīgus, sortējamus identifikatorus.

KSUID ģenerators

📚

Dokumentācija

KSUID ģenerators

Ievads

KSUID (K-sortējams unikālais identifikators) ir unikāla identifikatora formāts, kas piedāvā vairākas priekšrocības salīdzinājumā ar tradicionālajiem UUID (Vispārējais unikālais identifikators) un citiem identifikatoru sistēmām. Šis rīks ļauj ātri un viegli ģenerēt KSUID.

Kas ir KSUID?

KSUID ir 20 baitus garš sortējams identifikators, kas sastāv no:

  1. 32 bitu laika zīmoga (4 baitus)
  2. 16 baitiem nejaušības

Kad tas tiek attēlots kā virkne, KSUID tiek kodēts base62 un ir 27 rakstzīmes garš.

KSUID struktūra

KSUID struktūru var sadalīt šādi:

  1. Laika zīmogs (4 baitus): Tas attēlo sekunžu skaitu kopš Unix epohas (1970. gada 1. janvāra plkst. 00:00 UTC). Laika zīmogs ļauj KSUID būt aptuveni sortējamiem pēc ģenerēšanas laika.

  2. Nejaušā sastāvdaļa (16 baitus): Tas ir kriptogrāfiski drošs nejaušs skaitlis, kas nodrošina unikālumu pat tad, ja vairāki KSUID tiek ģenerēti vienā sekundē.

  3. Base62 kodēšana: Apvienotie 20 baitus (laika zīmogs + nejaušība) tiek kodēti, izmantojot base62 (A-Z, a-z, 0-9), lai iegūtu galīgo 27 rakstzīmju virkni.

KSUID formula

KSUID var matemātiski attēlot kā:

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

Kur:

  • TT ir 32 bitu laika zīmogs
  • RR ir 128 bitu nejaušā sastāvdaļa
  • || apzīmē savienošanu

Laika zīmogs TT tiek aprēķināts kā:

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

Kur KSUID_epoch ir 1400000000 (2014-05-13T16:53:20Z).

KSUID struktūras diagramma

Laika zīmogs (4 baitus) Nejaušā sastāvdaļa (16 baitus)

KSUID lietošanas gadījumi

KSUID ir īpaši noderīgi šādās situācijās:

  1. Izplatītās sistēmas: Kad jums nepieciešami unikāli identifikatori vairākos serveros vai pakalpojumos bez koordinācijas.

  2. Laika sortējami dati: Kad vēlaties sortēt datus pēc izveides laika, neglabājot atsevišķu laika zīmogu.

  3. Datu bāzes atslēgas: Kā primārās atslēgas datu bāzēs, īpaši izplatītajās datu bāzēs, kur automātiski pieaugoši veseli skaitļi nav piemēroti.

  4. URL droši identifikatori: Lai izveidotu īsus, unikālus, URL drošus identifikatorus resursiem tīmekļa lietojumprogrammās.

  5. Žurnālu korelācija: Lai korelētu žurnālu ierakstus dažādos pakalpojumos mikroservisu arhitektūrā.

KSUID priekšrocības

KSUID piedāvā vairākas priekšrocības salīdzinājumā ar citām identifikatoru sistēmām:

  1. Sortējamība: Atšķirībā no UUID, KSUID var sortēt hronoloģiski, kas ir noderīgi datu bāzes indeksēšanai un žurnālu analīzei.

  2. Koordinācija nav nepieciešama: Atšķirībā no automātiski pieaugošiem ID, KSUID var ģenerēt neatkarīgi dažādi serveri, neriskējot ar sadursmēm.

  3. Kompakta reprezentācija: 27 rakstzīmes garumā KSUID ir kompakti salīdzinājumā ar UUID, kad tie tiek attēloti kā virknes.

  4. Laika zīmogs iekļauts: Iekļautais laika zīmogs ļauj veikt laika balstītu sortēšanu un filtrēšanu bez atsevišķa laika zīmoga lauka.

  5. URL drošs: Base62 kodēšana padara KSUID drošus lietošanai URL bez papildu kodēšanas.

  6. Samazināta sadursmju iespējamība: 16 baitu nejaušā sastāvdaļa padara sadursmes ārkārtīgi maz ticamas, pat pie augstiem ģenerēšanas ātrumiem.

Kā izmantot šo ģeneratoru

  1. Ievadiet jebkurus papildu parametrus, ja nepieciešams (piemēram, pielāgots laika zīmogs).
  2. Noklikšķiniet uz pogas "Ģenerēt KSUID", lai izveidotu jaunu KSUID.
  3. Ģenerētais KSUID tiks attēlots izvades laukā.
  4. Jūs varat ģenerēt vairākus KSUID, atkārtojot 1.-3. darbību.
  5. Izmantojiet "Kopēt" pogu blakus katram KSUID, lai to kopētu uz starpliktuvi.
  6. Pēc izvēles izmantojiet "Eksportēt" funkciju, lai lejupielādētu ģenerēto KSUID sarakstu.

Atcerieties, ka katrs KSUID ir unikāls un to vajadzētu izmantot tikai vienu reizi. Ģenerējiet jaunu KSUID katru reizi, kad jums nepieciešams unikāls identifikators.

Koda piemēri

Šeit ir piemēri KSUID ģenerēšanai dažādās programmēšanas valodās:

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

Atsauces

  1. Segmenta KSUID GitHub repozitorijs: https://github.com/segmentio/ksuid
  2. "Labas unikālo identifikatoru ģenerēšana" autors Pīters Bourgons: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID specifikācija: https://github.com/segmentio/ksuid/blob/master/README.md