🛠️

Whiz Tools

Build • Create • Innovate

KSUID Generator for Unique Time-Sortable Identifiers

Unda KSUIDs (K-Sortable Unique Identifiers) kwa matumizi katika mifumo iliyosambazwa, hifadhidata, na programu zinazohitaji funguo za kipekee, zinazoweza kupanga kwa wakati. KSUIDs zinachanganya alama ya wakati na data ya nasibu ili kuunda vitambulisho vya kupambana na mgongano na vinavyoweza kupanga.

Mwanzo wa KSUID

📚

Hati

KSUID Generator

Utangulizi

KSUID (K-Sortable Unique IDentifier) ni muundo wa kitambulisho cha kipekee ambacho kinatoa faida kadhaa ikilinganishwa na UUID za jadi (Universally Unique Identifier) na mifumo mingine ya kitambulisho. Chombo hiki kinakuruhusu kuzalisha KSUID haraka na kwa urahisi.

KSUID ni Nini?

KSUID ni kitambulisho cha bytes 20 kinachoweza kupangwa ambacho kina:

  1. Muda wa sekunde 32 (bytes 4)
  2. Bytes 16 za nasibu

Wakati unawakilishwa kama mfuatano, KSUID inakodishwa kwa base62 na ina urefu wa wahusika 27.

Muundo wa KSUID

Muundo wa KSUID unaweza kugawanywa kama ifuatavyo:

  1. Muda (bytes 4): Hii inawakilisha idadi ya sekunde tangu kipindi cha Unix (tarehe 1 Januari 1970, saa 00:00 UTC). Muda huu unaruhusu KSUID kuwa na mpangilio wa karibu kulingana na wakati wa uzalishaji.

  2. Sehemu ya Nasibu (bytes 16): Hii ni nambari ya nasibu inayohifadhiwa kwa usalama ambayo inahakikisha kipekee hata wakati KSUID nyingi zinapozalishwa katika sekunde moja.

  3. Kodishaji kwa Base62: Bytes 20 zilizounganishwa (muda + nasibu) zinakodishwa kwa kutumia base62 (A-Z, a-z, 0-9) ili kutoa mfuatano wa mwisho wa wahusika 27.

Formula ya KSUID

KSUID inaweza kuwakilishwa kwa njia ya kihesabu kama:

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

Ambapo:

  • TT ni muda wa sekunde 32
  • RR ni sehemu ya nasibu ya bits 128
  • || inaashiria kuunganishwa

Muda TT unakokotwa kama:

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

Ambapo KSUID_epoch ni 1400000000 (2014-05-13T16:53:20Z).

Mchoro wa Muundo wa KSUID

Muda (bytes 4) Sehemu ya Nasibu (bytes 16)

Matumizi ya KSUIDs

KSUIDs ni muhimu sana katika hali zifuatazo:

  1. Mifumo Iliyosambazwa: Unapohitaji vitambulisho vya kipekee kati ya seva au huduma nyingi bila uratibu.

  2. Data Inayoweza Kupangwa kwa Wakati: Unapotaka kupanga data kulingana na wakati wa kuundwa bila kuhifadhi muda tofauti.

  3. Funguo za Hifadhidata: Kama funguo kuu katika hifadhidata, hasa katika hifadhidata zilizosambazwa ambapo nambari zinazoongezeka kwa moja hazifai.

  4. Vitambulisho Salama kwa URL: Kwa kuunda vitambulisho vifupi, vya kipekee, na salama kwa URL kwa rasilimali katika programu za wavuti.

  5. Uhusiano wa Kumbukumbu: Ili kuhusisha entries za kumbukumbu kati ya huduma tofauti katika usanifu wa microservices.

Faida za KSUIDs

KSUIDs zinatoa faida kadhaa ikilinganishwa na mifumo mingine ya kitambulisho:

  1. Uwezo wa Kupangwa: Kinyume na UUIDs, KSUIDs zinaweza kupangwa kwa muda, ambayo ni muhimu kwa uainishaji wa hifadhidata na uchambuzi wa kumbukumbu.

  2. Hakuna Uratibu Unaohitajika: Kinyume na vitambulisho vinavyoongezeka, KSUIDs zinaweza kuzalishwa kwa uhuru na seva tofauti bila hatari ya kukutana.

  3. Uwiano wa Compact: Kwa wahusika 27, KSUIDs ni ndogo zaidi kuliko UUIDs wakati zinawakilishwa kama mfuatano.

  4. Muda Umepachikwa: Muda ulio ndani unaruhusu kupanga na kuchuja kwa muda bila kuhitaji uwanja tofauti wa muda.

  5. Salama kwa URL: Kodishaji kwa base62 inafanya KSUIDs kuwa salama kwa matumizi katika URL bila kodishaji zaidi.

  6. Uwezekano wa Kukutana Umepunguzwa: Sehemu ya nasibu ya bytes 16 inafanya kukutana kuwa nadra sana, hata kwa viwango vya juu vya uzalishaji.

Jinsi ya Kutumia Generator Hii

  1. Ingiza vigezo vyovyote vya ziada ikiwa vinahitajika (mfano, muda wa kawaida).
  2. Bonyeza kitufe cha "Zalisha KSUID" ili kuunda KSUID mpya.
  3. KSUID iliyozalishwa itaonyeshwa katika uwanja wa matokeo.
  4. Unaweza kuzalisha KSUID nyingi kwa kurudia hatua 1-3.
  5. Tumia kitufe cha "Nakili" kilicho karibu na kila KSUID ili kuikopi kwenye clipboard yako.
  6. Kwa hiari, tumia kipengele cha "Safirisha" kupakua orodha ya KSUID zilizozalishwa.

Kumbuka kwamba kila KSUID ni ya kipekee na inapaswa kutumika mara moja tu. Zalisha KSUID mpya kila wakati unahitaji kitambulisho cha kipekee.

Mifano ya Msimbo

Hapa kuna mifano ya kuzalisha KSUIDs katika lugha mbalimbali za programu:

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

Marejeleo

  1. Hifadhi ya KSUID ya Segment: https://github.com/segmentio/ksuid
  2. "Kuzalisha vitambulisho vya kipekee vizuri" na Peter Bourgon: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. Spec ya KSUID: https://github.com/segmentio/ksuid/blob/master/README.md