केएसयूआईडी जनरेटर: अद्वितीय पहचानकर्ता उत्पन्न करें
वितरित प्रणालियों, डेटाबेस और अनुप्रयोगों में अद्वितीय, समय-क्रमानुसार कुंजी की आवश्यकता के लिए के-क्रमानुसार अद्वितीय पहचानकर्ता (केएसयूआईडी) उत्पन्न करें। केएसयूआईडी एक टाइमस्टैम्प के साथ यादृच्छिक डेटा को जोड़ता है ताकि टकराव-प्रतिरोधी, क्रमबद्ध पहचानकर्ता बनाए जा सकें।
केएसयूआईडी जनरेटर
दस्तावेज़ीकरण
KSUID जनरेटर
परिचय
KSUID (K-Sortable Unique IDentifier) एक अद्वितीय पहचानकर्ता प्रारूप है जो पारंपरिक UUID (Universally Unique Identifier) और अन्य पहचानकर्ता प्रणालियों की तुलना में कई लाभ प्रदान करता है। यह उपकरण आपको तेजी से और आसानी से KSUID उत्पन्न करने की अनुमति देता है।
KSUID क्या है?
KSUID एक 20-बाइट का क्रमबद्ध पहचानकर्ता है जिसमें शामिल हैं:
- एक 32-बिट टाइमस्टैम्प (4 बाइट)
- 16 बाइट की यादृच्छिकता
जब इसे एक स्ट्रिंग के रूप में दर्शाया जाता है, तो KSUID बेस62 में एन्कोडेड होता है और इसकी लंबाई 27 अक्षर होती है।
KSUID की संरचना
KSUID की संरचना को निम्नलिखित रूप में विभाजित किया जा सकता है:
-
टाइमस्टैम्प (4 बाइट): यह यूनिक्स युग (1 जनवरी 1970, 00:00 UTC) के बाद से सेकंड की संख्या का प्रतिनिधित्व करता है। टाइमस्टैम्प KSUID को उत्पन्न करने के समय के अनुसार क्रमबद्ध करने की अनुमति देता है।
-
यादृच्छिक घटक (16 बाइट): यह एक क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या है जो यह सुनिश्चित करती है कि एक ही सेकंड में कई KSUID उत्पन्न होने पर भी अद्वितीयता बनी रहे।
-
बेस62 एन्कोडिंग: संयुक्त 20 बाइट (टाइमस्टैम्प + यादृच्छिक) को फिर बेस62 (A-Z, a-z, 0-9) का उपयोग करके एन्कोड किया जाता है ताकि अंतिम 27-अक्षर की स्ट्रिंग उत्पन्न हो सके।
KSUID सूत्र
KSUID को गणितीय रूप से इस प्रकार दर्शाया जा सकता है:
जहाँ:
- 32-बिट टाइमस्टैम्प है
- 128-बिट यादृच्छिक घटक है
- संयोजन को दर्शाता है
टाइमस्टैम्प की गणना इस प्रकार की जाती है:
T = \text{floor}(\text{current_time} - \text{KSUID_epoch})
जहाँ KSUID_epoch 1400000000 (2014-05-13T16:53:20Z) है।
KSUID संरचना आरेख
KSUIDs के उपयोग के मामले
KSUIDs विशेष रूप से निम्नलिखित परिदृश्यों में उपयोगी होते हैं:
-
वितरित प्रणालियाँ: जब आपको बिना समन्वय के कई सर्वरों या सेवाओं में अद्वितीय पहचानकर्ताओं की आवश्यकता हो।
-
समय-क्रमबद्ध डेटा: जब आप बिना एक अलग टाइमस्टैम्प संग्रहीत किए निर्माण समय के अनुसार डेटा को क्रमबद्ध करना चाहते हैं।
-
डेटाबेस कुंजी: डेटाबेस में प्राथमिक कुंजी के रूप में, विशेष रूप से वितरित डेटाबेस में जहाँ स्वचालित वृद्धि करने वाले पूर्णांक उपयुक्त नहीं होते हैं।
-
URL-सुरक्षित पहचानकर्ता: वेब अनुप्रयोगों में संसाधनों के लिए छोटे, अद्वितीय, URL-सुरक्षित पहचानकर्ता बनाने के लिए।
-
लॉग संबंध: माइक्रोसर्विस आर्किटेक्चर में विभिन्न सेवाओं के बीच लॉग प्रविष्टियों को संबंधित करने के लिए।
KSUIDs के लाभ
KSUIDs अन्य पहचानकर्ता प्रणालियों की तुलना में कई लाभ प्रदान करते हैं:
-
क्रमबद्धता: UUIDs के विपरीत, KSUIDs को कालानुक्रमिक रूप से क्रमबद्ध किया जा सकता है, जो डेटाबेस अनुक्रमण और लॉग विश्लेषण के लिए उपयोगी है।
-
समन्वय की आवश्यकता नहीं: स्वचालित वृद्धि करने वाले IDs के विपरीत, KSUIDs विभिन्न सर्वरों द्वारा स्वतंत्र रूप से उत्पन्न किए जा सकते हैं बिना टकराव के जोखिम के।
-
संकुचित प्रतिनिधित्व: 27 अक्षरों में, KSUIDs स्ट्रिंग के रूप में दर्शाए जाने पर UUIDs की तुलना में अधिक संकुचित होते हैं।
-
टाइमस्टैम्प एम्बेडेड: एम्बेडेड टाइमस्टैम्प समय-आधारित क्रमबद्धता और छानबीन के लिए अनुमति देता है बिना एक अलग टाइमस्टैम्प फ़ील्ड की आवश्यकता के।
-
URL-सुरक्षित: बेस62 एन्कोडिंग KSUIDs को URL में उपयोग के लिए सुरक्षित बनाती है बिना किसी अतिरिक्त एन्कोडिंग के।
-
टकराव की संभावना में कमी: 16-बाइट का यादृच्छिक घटक उच्च उत्पादन दरों पर भी टकराव की संभावना को अत्यधिक कम करता है।
इस जनरेटर का उपयोग कैसे करें
- यदि आवश्यक हो तो कोई अतिरिक्त पैरामीटर दर्ज करें (जैसे, कस्टम टाइमस्टैम्प)।
- एक नया KSUID बनाने के लिए "Generate KSUID" बटन पर क्लिक करें।
- उत्पन्न KSUID आउटपुट फ़ील्ड में प्रदर्शित होगा।
- आप चरण 1-3 को दोहराकर कई KSUID उत्पन्न कर सकते हैं।
- प्रत्येक KSUID के बगल में "Copy" बटन का उपयोग करके इसे अपने क्लिपबोर्ड पर कॉपी करें।
- वैकल्पिक रूप से, उत्पन्न KSUIDs की सूची डाउनलोड करने के लिए "Export" सुविधा का उपयोग करें।
याद रखें कि प्रत्येक KSUID अद्वितीय है और इसे केवल एक बार उपयोग किया जाना चाहिए। जब भी आपको एक अद्वितीय पहचानकर्ता की आवश्यकता हो, एक नया KSUID उत्पन्न करें।
कोड उदाहरण
विभिन्न प्रोग्रामिंग भाषाओं में KSUID उत्पन्न करने के उदाहरण यहाँ दिए गए हैं:
1## पायथन
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"Generated KSUID: {new_id}")
6
1// जावास्क्रिप्ट
2const { ksuid } = require('ksuid')
3
4const newId = ksuid()
5console.log(`Generated KSUID: ${newId}`)
6
1// जावा
2import com.github.ksuid.KsuidGenerator;
3
4public class KsuidExample {
5 public static void main(String[] args) {
6 String newId = KsuidGenerator.generate();
7 System.out.println("Generated KSUID: " + newId);
8 }
9}
10
1// C++
2#include <iostream>
3#include <ksuid/ksuid.hpp>
4
5int main() {
6 ksuid::Ksuid newId = ksuid::Ksuid::generate();
7 std::cout << "Generated KSUID: " << newId.string() << std::endl;
8 return 0;
9}
10
1## रूबी
2require 'ksuid'
3
4new_id = KSUID.new
5puts "Generated KSUID: #{new_id}"
6
1// PHP
2<?php
3require_once 'vendor/autoload.php';
4
5use Tuupola\KsuidFactory;
6
7$factory = new KsuidFactory();
8$newId = $factory->create();
9echo "Generated KSUID: " . $newId . "\n";
10?>
11
1// गो
2package main
3
4import (
5 "fmt"
6 "github.com/segmentio/ksuid"
7)
8
9func main() {
10 newId := ksuid.New()
11 fmt.Printf("Generated KSUID: %s\n", newId.String())
12}
13
1// स्विफ्ट
2import KSUID
3
4let newId = KSUID()
5print("Generated KSUID: \(newId)")
6
संदर्भ
- सेगमेंट का KSUID गिटहब रिपॉजिटरी: https://github.com/segmentio/ksuid
- "अच्छे अद्वितीय पहचानकर्ताओं का निर्माण" पीटर बौर्गन द्वारा: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
- KSUID विनिर्देशन: https://github.com/segmentio/ksuid/blob/master/README.md
प्रतिक्रिया
इस उपकरण के बारे में प्रतिक्रिया देने के लिए प्रतिक्रिया टोस्ट पर क्लिक करें
संबंधित उपकरण
अधिक उपकरणों का पता लगाएँ जो आपके कार्यप्रवाह के लिए उपयोगी हो सकते हैं