🛠️

Whiz Tools

Build • Create • Innovate

KSUID-generaattori ainutlaatuisten tunnisteiden luomiseen

Tuota K-lajiteltavia ainutlaatuisia tunnisteita (KSUID) käytettäväksi hajautetuissa järjestelmissä, tietokannoissa ja sovelluksissa, jotka vaativat ainutlaatuisia, aikajärjestyksessä lajitteltavia avaimia. KSUID-yhdistää aikaleiman satunnaisiin tietoihin luodakseen törmäyksiltä suojattuja, lajitteltavia tunnisteita.

KSUID-generaattori

📚

Dokumentaatio

KSUID-generaattori

Johdanto

KSUID (K-Sortable Unique IDentifier) on ainutlaatuinen tunnistemuoto, joka tarjoaa useita etuja perinteisiin UUID (Universally Unique Identifier) ja muihin tunnistusjärjestelmiin verrattuna. Tämä työkalu mahdollistaa KSUIDien nopean ja helpon luomisen.

Mikä on KSUID?

KSUID on 20-tavun järjestettävä tunniste, joka koostuu:

  1. 32-bittisestä aikaleimasta (4 tavua)
  2. 16 tavusta satunnaisuutta

Kun se esitetään merkkijonona, KSUID on koodattu base62-muotoon ja se on 27 merkkiä pitkä.

KSUIDin rakenne

KSUIDin rakenne voidaan jakaa seuraaviin osiin:

  1. Aikaleima (4 tavua): Tämä edustaa sekuntien määrää Unix-epookista (1. tammikuuta 1970 klo 00:00 UTC). Aikaleima mahdollistaa KSUIDien järjestämisen suurin piirtein luontiajan mukaan.

  2. Satunnainen komponentti (16 tavua): Tämä on kryptografisesti turvallinen satunnainen luku, joka varmistaa ainutlaatuisuuden, vaikka useita KSUIDeja luotaisiin samassa sekunnissa.

  3. Base62-koodaus: Yhdistetyt 20 tavua (aikaleima + satunnainen) koodataan sitten base62-muotoon (A-Z, a-z, 0-9) tuottaen lopullisen 27-merkkisen merkkijonon.

KSUID-kaava

KSUID voidaan esittää matemaattisesti seuraavasti:

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

Missä:

  • TT on 32-bittinen aikaleima
  • RR on 128-bittinen satunnainen komponentti
  • || tarkoittaa yhdistämistä

Aikaleima TT lasketaan seuraavasti:

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

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

KSUIDin rakennekaavio

Aikaleima (4 tavua) Satunnainen komponentti (16 tavua)

Käyttötapaukset KSUIDeille

KSUIDit ovat erityisen hyödyllisiä seuraavissa tilanteissa:

  1. Hajautetut järjestelmät: Kun tarvitset ainutlaatuisia tunnisteita useilla palvelimilla tai palveluilla ilman koordinointia.

  2. Aikajärjestettävä data: Kun haluat järjestää dataa luontiajan mukaan ilman erillisen aikaleiman tallentamista.

  3. Tietokannan avaimet: Pääavaimina tietokannoissa, erityisesti hajautetuissa tietokannoissa, joissa automaattisesti kasvavat kokonaisluvut eivät ole sopivia.

  4. URL-turvalliset tunnisteet: Lyhyiden, ainutlaatuisten, URL-turvallisten tunnisteiden luomiseen resursseille verkkosovelluksissa.

  5. Lokien korrelaatio: Lokimerkintöjen korreloimiseen eri palveluissa mikropalveluarkkitehtuurissa.

KSUIDien edut

KSUIDit tarjoavat useita etuja muihin tunnistusjärjestelmiin verrattuna:

  1. Järjestettävyys: Toisin kuin UUID:t, KSUIDit voidaan järjestää aikajärjestyksessä, mikä on hyödyllistä tietokannan indeksoinnissa ja lokianalyysissä.

  2. Ei vaadi koordinointia: Toisin kuin automaattisesti kasvavat ID:t, KSUIDit voidaan luoda itsenäisesti eri palvelimilla ilman, että törmätään päällekkäisyyksiin.

  3. Tiivis esitys: 27 merkillä KSUIDit ovat tiiviimpiä kuin UUID:t merkkijonoina.

  4. Aikaleima upotettuna: Upotettu aikaleima mahdollistaa aikaperusteisen järjestämisen ja suodattamisen ilman erillistä aikaleimakenttää.

  5. URL-turvallinen: Base62-koodaus tekee KSUIDeista turvallisia käytettäväksi URL-osoitteissa ilman lisäkoodausta.

  6. Vähentynyt päällekkäisyyksien todennäköisyys: 16-tavun satunnainen komponentti tekee päällekkäisyyksistä äärimmäisen epätodennäköisiä, jopa korkeilla luontinopeuksilla.

Kuinka käyttää tätä generaattoria

  1. Syötä tarvittaessa lisäparametrit (esim. mukautettu aikaleima).
  2. Napsauta "Generoi KSUID" -painiketta luodaksesi uuden KSUIDin.
  3. Luotu KSUID näkyy tuloskentässä.
  4. Voit luoda useita KSUIDeja toistamalla vaiheet 1-3.
  5. Käytä "Kopioi" -painiketta kunkin KSUIDin vieressä kopioidaksesi sen leikepöydälle.
  6. Valinnaisesti käytä "Vie" -toimintoa ladataksesi luettelon luoduista KSUIDeista.

Muista, että jokainen KSUID on ainutlaatuinen ja sitä tulisi käyttää vain kerran. Luo uusi KSUID aina, kun tarvitset ainutlaatuista tunnistetta.

Koodiesimerkit

Tässä on esimerkkejä KSUIDien luomisesta eri ohjelmointikielillä:

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

Viitteet

  1. Segmentin KSUID GitHub-repositorio: https://github.com/segmentio/ksuid
  2. "Hyvien ainutlaatuisten tunnisteiden luominen" Peter Bourgonilta: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID-eritelmä: https://github.com/segmentio/ksuid/blob/master/README.md