🛠️

Whiz Tools

Build • Create • Innovate

KSUID Generátor: K-sortálható egyedi azonosítók létrehozása

Generáljon K-sortálható egyedi azonosítókat (KSUID) elosztott rendszerekhez, adatbázisokhoz és olyan alkalmazásokhoz, amelyek egyedi, időben rendezhető kulcsokat igényelnek. A KSUID-ok egy időbélyeget és véletlenszerű adatokat kombinálnak, hogy ütközés-ellenálló, rendezhető azonosítókat hozzanak létre.

KSUID Generátor

📚

Dokumentáció

KSUID Generátor

Bevezetés

A KSUID (K-Sortable Unique IDentifier) egy olyan egyedi azonosító formátum, amely számos előnyt kínál a hagyományos UUID (Universally Unique Identifier) és más azonosítórendszerekhez képest. Ez az eszköz lehetővé teszi, hogy gyorsan és egyszerűen generáljunk KSUID-okat.

Mi az a KSUID?

A KSUID egy 20 bájtos rendezhető azonosító, amely a következőkből áll:

  1. Egy 32 bites időbélyeg (4 bájt)
  2. 16 bájt véletlenszerűség

Karakterláncként ábrázolva a KSUID base62 kódolású, és 27 karakter hosszú.

A KSUID szerkezete

A KSUID szerkezete a következőképpen bontható le:

  1. Időbélyeg (4 bájt): Ez az Unix epoch óta eltelt másodpercek számát jelenti (1970. január 1., 00:00 UTC). Az időbélyeg lehetővé teszi, hogy a KSUID-ok nagyjából rendezhetők legyenek a létrehozás ideje szerint.

  2. Véletlenszerű komponens (16 bájt): Ez egy kriptográfiailag biztonságos véletlenszám, amely biztosítja az egyediséget, még akkor is, ha több KSUID-ot generálnak ugyanabban a másodpercben.

  3. Base62 Kódolás: A kombinált 20 bájt (időbélyeg + véletlenszerű) ezután base62 (A-Z, a-z, 0-9) kódolással kerül ábrázolásra, hogy létrejöjjön a végső 27 karakteres karakterlánc.

KSUID Formula

A KSUID matematikailag a következőképpen ábrázolható:

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

Ahol:

  • TT a 32 bites időbélyeg
  • RR a 128 bites véletlenszerű komponens
  • || a konkatenációt jelöli

Az időbélyeg TT kiszámítása:

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

Ahol a KSUID_epoch 1400000000 (2014-05-13T16:53:20Z).

KSUID Szerkezet Diagram

Időbélyeg (4 bájt) Véletlenszerű komponens (16 bájt)

Használati esetek KSUID-okhoz

A KSUID-ok különösen hasznosak a következő forgatókönyvekben:

  1. Elosztott rendszerek: Amikor egyedi azonosítókra van szükség több szerver vagy szolgáltatás között koordináció nélkül.

  2. Időben rendezhető adatok: Amikor szeretnéd az adatokat a létrehozás ideje szerint rendezni anélkül, hogy külön időbélyeg mezőt tárolnál.

  3. Adatbázis kulcsok: Mint elsődleges kulcsok az adatbázisokban, különösen elosztott adatbázisokban, ahol az automatikusan növekvő egész számok nem megfelelőek.

  4. URL-biztonságos azonosítók: Rövid, egyedi, URL-biztonságos azonosítók létrehozásához webalkalmazásokban.

  5. Napló összekapcsolás: A naplóbejegyzések összekapcsolásához különböző szolgáltatások között mikroszolgáltatás-architektúrában.

A KSUID-ok előnyei

A KSUID-ok számos előnyt kínálnak más azonosítórendszerekkel szemben:

  1. Rendezhetőség: A UUID-okkal ellentétben a KSUID-ok időrendben rendezhetők, ami hasznos az adatbázis indexeléshez és a naplóelemzéshez.

  2. Nincs szükség koordinációra: Az automatikusan növekvő azonosítókhoz képest a KSUID-ok függetlenül generálhatók különböző szerverek által, anélkül, hogy ütközések kockázata lenne.

  3. Kompakt ábrázolás: 27 karakterrel a KSUID-ok kompaktabbak, mint a UUID-ok, amikor karakterláncként ábrázolják őket.

  4. Beágyazott időbélyeg: A beágyazott időbélyeg lehetővé teszi az időalapú rendezést és szűrést anélkül, hogy külön időbélyeg mezőt kellene tárolni.

  5. URL-biztonságos: A base62 kódolás lehetővé teszi, hogy a KSUID-ok biztonságosan használhatók legyenek URL-ekben további kódolás nélkül.

  6. Csökkentett ütközési valószínűség: A 16 bájt véletlenszerű komponens rendkívül valószínűtlenné teszi az ütközéseket, még magas generálási sebesség esetén is.

Hogyan használd ezt a generátort

  1. Írd be az esetlegesen szükséges további paramétereket (pl. testreszabott időbélyeg).
  2. Kattints a "Generálj KSUID-ot" gombra egy új KSUID létrehozásához.
  3. A generált KSUID megjelenik a kimeneti mezőben.
  4. Több KSUID-ot is generálhatsz az 1-3 lépések megismétlésével.
  5. Használhatod a "Másolás" gombot minden KSUID mellett, hogy a vágólapra másold.
  6. Opcionálisan használd az "Exportálás" funkciót, hogy letölts egy listát a generált KSUID-okról.

Ne feledd, hogy minden KSUID egyedi, és egyszer használatos. Minden alkalommal generálj új KSUID-ot, amikor egyedi azonosítóra van szükséged.

Kód Példák

Íme példák KSUID-ok generálására különböző programozási nyelveken:

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

Hivatkozások

  1. Segment KSUID GitHub Repository: https://github.com/segmentio/ksuid
  2. "Jó egyedi azonosítók generálása" Peter Bourgon által: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID Specifikáció: https://github.com/segmentio/ksuid/blob/master/README.md