← Barcha vositalar

UUID Generatori (v4 GUID)

Brauzeringizda bir zumda tasodifiy v4 UUID (GUID) yarating. 128-bitli UUID nima ekanligi, versiyalar farqi, to'qnashuv ehtimoli va qachon ishlatishni bilib oling.

UUID aslida nima

UUID, Universally Unique Identifier (universal noyob identifikator) so'zlarining qisqartmasi, avvaldan hech kimdan ruxsat so'ramasdan biror narsani belgilash uchun ishlatiladigan 128 bitli qiymatdir. Uni GUID, ya'ni Globally Unique Identifier deb ham atashlarini ko'rishingiz mumkin, bu shunchaki Microsoft'ning Windows va .NET dunyosida xuddi shu g'oyaga bergan nomi. Ikkala atama ham deyarli har doim ahamiyatli barcha holatlarda bir xil 128 bitli sonni ifodalaydi, shuning uchun hamkasbingiz GUID desa, siz esa UUID desangiz, siz deyarli har doim aynan bir xil narsa haqida gapiryapsiz.

O'sha 128 bit odatda 8-4-4-4-12 naqshida chiziqchalar bilan beshta guruhga bo'lingan 32 ta o'n oltilik raqam sifatida yoziladi. Tipik qiymat 123e4567-e89b-12d3-a456-426614174000 kabi ko'rinadi. Chiziqchalarning o'zi hech qanday ma'noga ega emas; ular faqat insonning qiymatni o'z joyini yo'qotmasdan o'qiy olishi uchun mavjud. Har bir belgi 0 dan f gacha bo'lgan o'n oltilik raqam, shuning uchun UUID kundalik sondan ancha zichroq tuyuladi, garchi u aslida, tag-tagida, faqat bitta juda katta butun son bo'lsa ham.

Qorong'u indigo fonda noyob 128 bitli identifikatorni ifodalovchi mavhum porloq o'n oltilik token
UUID — bu bitta 128 bitli son, beshta chiziqcha bilan ajratilgan guruhdagi 32 ta o'n oltilik raqam sifatida yozilgan.

Versiyalar va nega v4 g'olib chiqadi

Standart bir nechta versiyani belgilaydi va ular bitlar qanday to'ldirilishi bilan farqlanadi. 1-versiya vaqtga asoslangan: u joriy vaqt tamg'asi va mashinaning tarmoq MAC manzilini birgalikda to'qiydi. Bu v1 qiymatlarini yaratilgan vaqti bo'yicha saralashga imkon beradi, lekin bu ular qayerda va taxminan qachon yaratilgani haqida ma'lumot ham sizib chiqaradi, bu har doim ham xush kelmaydi. 3 va 5-versiyalar nomga asoslangan bo'lib, nom fazosi va nomni birga xeshlab, bir xil kirish har doim bir xil identifikatorni beradi.

4-versiya butunlay boshqa yo'lni tanlaydi. U deyarli sof tasodifiylikdir. 128 bitdan oltitasi versiya va variantni belgilash uchun ajratilgan, qolgan 122 bit esa tasodifiy ma'lumot bilan to'ldiriladi. Vaqt tamg'asi yo'q, MAC manzil yo'q, nom fazosi yo'q, faqat shovqin. Aynan shu sababdan ko'pchilik generatorlar, jumladan shu bittasi ham, standart bo'yicha v4 yaratadi. U qurilma yoki yaratilish vaqti haqida hech narsa ochib bermaydi va uni yaratayotgan taraflar orasida hech qanday muvofiqlashtirishni talab qilmaydi. Ushbu sahifadagi vosita to'liq brauzeringizda ishlaydi, shuning uchun tasodifiy qiymatlar hech qachon qurilmangizdan chiqmaydi.

To'qnashuv qanchalik ehtimoldan yiroq

Oqilona xavotir shundaki, ikkita tasodifiy UUID bir kun bir xil bo'lib qolishi mumkin. 122 ta tasodifiy bit bilan mumkin bo'lgan v4 qiymatlar fazosi 2 ning 122-darajasiga teng, bu taxminan 5,3 dan keyin 36 ta nol. Buni inson tiliga o'girsak, bitta dublikatning ehtimoli o'lchay oladigan darajaga yetguncha bir necha o'n yillar davomida har soniyada milliardlab UUID yaratishingiz kerak bo'lardi. Standartning o'zi to'qnashuv ehtimolini nolga shu qadar yaqin deb ta'riflaydiki, uni e'tiborsiz qoldirsa bo'ladi. Amalda jamoalar v4 ni noyob deb hisoblab, ishni davom ettiradi, va bu to'g'ri.

Moviy va oltin rangdagi urg'ular bilan katta qorong'u bo'shliqda suzayotgan sanoqsiz alohida porloq kalitlar, dublikatlarsiz
Mumkin bo'lgan v4 qiymatlar to'plami shunchalik ulkanki, to'qnashuvlar amalda mumkin emas.

Dasturchilar ularga qayerda murojaat qiladi

Noyoblik markaziy hokimiyatni talab qilmagani uchun, UUID muvofiqlashtirish qimmat yoki mumkin bo'lmagan joylarda porlaydi. Ular ma'lumotlar bazasi asosiy kalitlari uchun tabiiy moslik, ayniqsa bir nechta xizmat har biri qatorlar qo'shsa va navbatdagi raqamni umumiy hisoblagichdan so'rash uchun to'xtay olmaysiz. Taqsimlangan tizimlarda sayyoraning qarama-qarshi tomonlaridagi ikkita tugun bir vaqtning o'zida identifikatorlarni hech qachon to'qnashmasdan yaratishi mumkin. Ular shuningdek API idempotentlik kalitlarini quvvatlaydi, unda mijoz so'rovga UUID biriktiradi, shunda server tarmoq qayta urinishi natijasida dublikatni xavfsiz e'tiborsiz qoldira oladi. Sessiya tokenlari, fayl nomlari, hodisa identifikatorlari va xabar kalitlarining barchasi xuddi shu xususiyatga tayanadi.

UUID avtomatik o'suvchi identifikatorlarga qarshi

Klassik alternativa avtomatik o'suvchi butun son: 1, 2, 3 va hokazo. Ketma-ket identifikatorlar ixcham, tabiiy tarzda saralanadi va o'qish oson, lekin ularning haqiqiy kamchiliklari bor. Ular necha yozuv mavjudligini oshkor qiladi va tashqi kishilarga qo'shni qiymatlarni taxmin qilishga imkon beradi va har bir kiritishni yagona hisoblagich orqali o'tkazishga majbur qiladi, bu esa ma'lumotlar bazasini bo'laklarga ajratganda yoki ko'plab manbalardan ma'lumotni birlashtirganda to'siqqa aylanadi. UUID bu muammolarni har qanday tarafga kalitni mustaqil yaratishga imkon berish va hajm yoki tartib haqida hech narsa bermaslik orqali hal qiladi. Almashinuv — bu o'lcham va indekslarda ozgina kamroq mahalliylik. Kengayadigan yoki ichki qismini yashirishi kerak bo'lgan tizimlar uchun bu almashinuv odatda arziydi. Siz ushbu va shunga o'xshash vositalarni bizning barcha generatorlar to'plamimiz orqali kashf qilishingiz mumkin, yoki tegishli qurilish bloklarini topish uchun kengroq dasturchi vositalari to'plamini ko'rib chiqing.

Tez-tez so'raladigan savollar

GUID UUID bilan bir xilmi?

Kundalik maqsadlar uchun, ha. GUID — Microsoft'ning xuddi shu 128 bitli identifikator uchun ishlatgan nomi. Yagona haqiqiy farq ba'zi Windows tizimlarida xom ikkilik shaklidagi bayt tartibi; satr shaklida ular bir xil va bir-birining o'rnini bosa oladi.

Ushbu vosita qaysi UUID versiyasini yaratadi?

U 4-versiyani, tasodifiy variantni yaratadi. 128 bitidan 122 tasi tasodifiy ma'lumot bilan to'ldirilgan, bu har bir qiymatni takrorlanish ehtimoli juda past qiladi va u vaqt tamg'asi yoki qurilma ma'lumotini olib yurmasligini bildiradi.

Ikkita UUID hech qachon bir xil bo'lishi mumkinmi?

Nazariy jihatdan ehtimol aniq nol emas, lekin taxminan 5,3 karra 10 ning 36-darajasiga teng mumkin bo'lgan v4 qiymatlar bilan bu shu qadar kichikki, u e'tiborsiz deb hisoblanadi. To'qnashuv ehtimol bo'lib qolishi uchun ularni astronomik miqdorda yaratishingiz kerak bo'lardi.

Nega avtomatik o'suvchi son o'rniga UUID ishlatish kerak?

UUID har qanday xizmat tomonidan umumiy hisoblagichsiz mustaqil yaratilishi mumkin, ular yozuvlar sonini yoki tartibini oshkor qilmaydi va ko'plab manbalardan ma'lumotni birlashtirishni og'riqsiz qiladi. Avtomatik o'suvchi identifikatorlar kichikroq, lekin ular to'siqqa aylanadi va katta miqyosda ma'lumot sizib chiqadi.

UUID'lar serverda yaratiladimi?

Yo'q. Ushbu vosita to'liq brauzeringizda ishlaydi, shuning uchun tasodifiy qiymatlar mahalliy tarzda ishlab chiqariladi va hech qayerga yuborilmaydi. Bu maxfiy saqlamoqchi bo'lgan kalitlar va tokenlar uchun ishlatishni xavfsiz qiladi.

Chiziqcha naqshi nimani anglatadi?

8-4-4-4-12 guruhlash shunchaki o'qish qulayligi uchun qabul qilingan qoida. Chiziqchalar hech qanday ma'lumot tashimaydi; ular 32 ta o'n oltilik raqamni bo'laklarga ajratadi, shunda odamlar qiymatlarni osonroq ko'rib chiqib solishtirishi mumkin.