K-Sortable Unique Identifier Generator for Systems and Apps
تقسیم شدہ نظاموں، ڈیٹا بیسز، اور ان ایپلیکیشنز کے لیے منفرد، وقت کے لحاظ سے ترتیب دیے جانے والے کلیدوں کی ضرورت کے لیے K-Sortable Unique Identifiers (KSUIDs) تیار کریں۔ KSUIDs ایک وقت کی مہر کے ساتھ بے ترتیب ڈیٹا کو ملا کر ٹکراؤ سے محفوظ، ترتیب دیے جانے والے شناخت کنندگان تخلیق کرتے ہیں۔
کے ایس یو آئی ڈی جنریٹر
دستاویزات
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 کو وقت کے لحاظ سے ترتیب دیا جا سکتا ہے، جو ڈیٹا بیس کی انڈیکسنگ اور لاگ تجزیے کے لیے مفید ہے۔
-
ہم آہنگی کی ضرورت نہیں: خود بخود بڑھنے والے IDs کے برعکس، KSUIDs مختلف سرورز کے ذریعہ آزادانہ طور پر پیدا کیے جا سکتے ہیں بغیر تصادم کے خطرے کے۔
-
کمپیکٹ نمائندگی: 27 حروف میں، KSUIDs سٹرنگ کے طور پر پیش کیے جانے پر UUIDs کے مقابلے میں زیادہ کمپیکٹ ہیں۔
-
ٹائم اسٹیمپ شامل: شامل کردہ ٹائم اسٹیمپ وقت کی بنیاد پر ترتیب دینے اور فلٹر کرنے کی اجازت دیتا ہے بغیر الگ ٹائم اسٹیمپ فیلڈ کی ضرورت کے۔
-
URL-محفوظ: بیس62 انکوڈنگ KSUIDs کو URLs میں استعمال کے لیے محفوظ بناتی ہے بغیر کسی اضافی انکوڈنگ کے۔
-
تصادم کے امکانات میں کمی: 16-بائٹ بے ترتیب جزو تصادم کو انتہائی ناممکن بناتا ہے، یہاں تک کہ اعلی پیداوار کی شرح پر بھی۔
اس جنریٹر کا استعمال کیسے کریں
- اگر ضروری ہو تو کوئی اضافی پیرامیٹرز درج کریں (جیسے، حسب ضرورت ٹائم اسٹیمپ)۔
- "Generate KSUID" بٹن پر کلک کریں تاکہ ایک نیا 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
- "اچھے منفرد شناخت کنندے پیدا کرنا" پیٹر بورگون کی طرف سے: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
- KSUID وضاحت: https://github.com/segmentio/ksuid/blob/master/README.md
رائے
اس ٹول کے بارے میں رائے دینے کے لیے رائے کے ٹوسٹ پر کلک کریں
متعلقہ ٹولز
مزید ٹولز دریافت کریں جو آپ کے ورک فلو کے لیے مفید ہو سکتے ہیں