केएसयूआयडी जनरेटर: अद्वितीय ओळखपत्र तयार करा
वितरित प्रणाली, डेटाबेस आणि अद्वितीय, वेळेनुसार क्रमबद्ध की आवश्यक असलेल्या अनुप्रयोगांसाठी के-क्रमबद्ध अद्वितीय ओळखपत्र (केएसयूआयडी) तयार करा. केएसयूआयडी एक टाईमस्टॅम्प आणि यादृच्छिक डेटाची एकत्रित करून टकराव-प्रतिरोधक, क्रमबद्ध ओळखपत्र तयार करतात.
केसुइड जनरेटर
दस्तऐवजीकरण
KSUID जनरेटर
परिचय
KSUID (K-Sortable Unique IDentifier) एक अद्वितीय ओळखकर्ता स्वरूप आहे जो पारंपरिक UUID (Universally Unique Identifier) आणि इतर ओळखकर्ता प्रणालींवर अनेक फायदे प्रदान करतो. हे साधन तुम्हाला KSUIDs जलद आणि सोप्या पद्धतीने तयार करण्याची परवानगी देते.
KSUID म्हणजे काय?
KSUID एक 20-बाइटचे क्रमबद्ध ओळखकर्ता आहे ज्यामध्ये:
- 32-बिट टाइमस्टॅम्प (4 बाइट)
- 16 बाइटची यादृच्छिकता
स्ट्रिंग म्हणून दर्शविल्यास, KSUID बेस62 मध्ये एन्कोड केलेले आहे आणि 27 वर्ण लांब आहे.
KSUID ची रचना
KSUID ची रचना खालीलप्रमाणे विभागली जाऊ शकते:
-
टाइमस्टॅम्प (4 बाइट): हे युनिक्स युगापासून (1 जानेवारी 1970, 00:00 UTC) सेकंदांमध्ये किती वेळ गेला आहे हे दर्शवते. टाइमस्टॅम्प KSUIDs ला निर्माणाच्या वेळेनुसार सुमारे क्रमबद्ध करण्यास परवानगी देते.
-
यादृच्छिक घटक (16 बाइट): हे एक क्रिप्टोग्राफिकली सुरक्षित यादृच्छिक संख्या आहे जे सुनिश्चित करते की एकाच सेकंदात अनेक KSUIDs तयार केल्यास अद्वितीयता राखली जाईल.
-
बेस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 कालानुक्रमाने क्रमबद्ध केले जाऊ शकतात, जे डेटाबेस अनुक्रमणिका आणि लॉग विश्लेषणासाठी उपयुक्त आहे.
-
समन्वयाची आवश्यकता नाही: स्वयंचलित वाढणाऱ्या आयडींप्रमाणे, KSUIDs वेगवेगळ्या सर्व्हरद्वारे स्वतंत्रपणे तयार केले जाऊ शकतात, त्यामुळे टकरावाचा धोका कमी होतो.
-
संकुचित प्रतिनिधित्व: 27 वर्णांमध्ये, KSUIDs स्ट्रिंग म्हणून दर्शविल्यास UUIDs पेक्षा अधिक संकुचित आहेत.
-
टाइमस्टॅम्प समाविष्ट: समाविष्ट टाइमस्टॅम्पमुळे वेगळा टाइमस्टॅम्प फील्ड न ठेवता वेळ आधारित क्रमबद्धता आणि गाळणी करणे शक्य होते.
-
URL-सुरक्षित: बेस62 एन्कोडिंगमुळे KSUIDs URL मध्ये कोणत्याही अतिरिक्त एन्कोडिंगशिवाय वापरण्यासाठी सुरक्षित आहेत.
-
कमी टकरावाची शक्यता: 16-बाइटची यादृच्छिक घटक टकरावांची शक्यता अत्यंत कमी करते, अगदी उच्च उत्पादन दरांवरही.
या जनरेटरचा वापर कसा करावा
- आवश्यक असल्यास कोणत्याही अतिरिक्त पॅरामिटर्स प्रविष्ट करा (उदा., कस्टम टाइमस्टॅम्प).
- नवीन KSUID तयार करण्यासाठी "Generate KSUID" बटणावर क्लिक करा.
- तयार केलेला KSUID आउटपुट फील्डमध्ये दर्शविला जाईल.
- तुम्ही चरण 1-3 पुनरावृत्ती करून अनेक KSUIDs तयार करू शकता.
- प्रत्येक KSUID च्या बाजूला "Copy" बटणाचा वापर करून ते तुमच्या क्लिपबोर्डवर कॉपी करा.
- पर्यायीपणे, तयार केलेल्या KSUIDs ची यादी डाउनलोड करण्यासाठी "Export" वैशिष्ट्य वापरा.
प्रत्येक KSUID अद्वितीय आहे आणि एकदाच वापरला पाहिजे. तुम्हाला अद्वितीय ओळखकर्ता आवश्यक असताना नवीन KSUID तयार करा.
कोड उदाहरणे
येथे विविध प्रोग्रामिंग भाषांमध्ये KSUIDs तयार करण्याचे उदाहरणे आहेत:
1## Python
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"Generated KSUID: {new_id}")
6
1// JavaScript
2const { ksuid } = require('ksuid')
3
4const newId = ksuid()
5console.log(`Generated KSUID: ${newId}`)
6
1// Java
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## Ruby
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// Go
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// Swift
2import KSUID
3
4let newId = KSUID()
5print("Generated KSUID: \(newId)")
6
संदर्भ
- Segment चा KSUID GitHub रेपॉजिटरी: https://github.com/segmentio/ksuid
- "Generating good unique identifiers" पीटर बर्गन द्वारे: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
- KSUID स्पेसिफिकेशन: https://github.com/segmentio/ksuid/blob/master/README.md
प्रतिसाद
या साधनाबद्दल प्रतिसाद देण्यासाठी प्रतिसाद टॉस्टवर क्लिक करा
संबंधित साधने
तुमच्या कार्यप्रवाहासाठी उपयुक्त असलेल्या अधिक साधनांचा शोध घ्या