Whiz Tools

KSUID జనరేటర్

KSUID జనరేటర్

పరిచయం

KSUID (K-Sortable Unique IDentifier) అనేది ప్రత్యేక గుర్తింపు ఫార్మాట్, ఇది సంప్రదాయ UUID (Universally Unique Identifier) మరియు ఇతర గుర్తింపు వ్యవస్థలపై అనేక ప్రయోజనాలను అందిస్తుంది. ఈ సాధనం KSUIDలను త్వరగా మరియు సులభంగా రూపొందించడానికి మీకు అనుమతిస్తుంది.

KSUID అంటే ఏమిటి?

KSUID అనేది 20-బైట్ సార్టబుల్ గుర్తింపు, ఇది కింది వాటిని కలిగి ఉంటుంది:

  1. 32-బిట్ టైమ్‌స్టాంప్ (4 బైట్‌లు)
  2. 16 బైట్‌ల యాదృచ్ఛికత

ఒక స్ట్రింగ్‌గా ప్రదర్శించినప్పుడు, KSUID బేస్62లో కోడ్ చేయబడుతుంది మరియు 27 అక్షరాల పొడవు ఉంటుంది.

KSUID యొక్క నిర్మాణం

KSUID యొక్క నిర్మాణాన్ని క్రింద చూపించినట్లుగా విభజించవచ్చు:

  1. టైమ్‌స్టాంప్ (4 బైట్‌లు): ఇది యూనిక్ ఎపోచ్ (1970, జనవరి 1, 00:00 UTC) నుండి సెకన్ల సంఖ్యను సూచిస్తుంది. టైమ్‌స్టాంప్ KSUIDలను ఉత్పత్తి సమయానికి అనుగుణంగా సార్టబుల్‌గా ఉంచుతుంది.

  2. యాదృచ్ఛిక భాగం (16 బైట్‌లు): ఇది క్రిప్టోగ్రాఫిక్‌గా సురక్షితమైన యాదృచ్ఛిక సంఖ్య, ఇది ఒకే సెకన్లో అనేక KSUIDలను ఉత్పత్తి చేసినప్పుడు ప్రత్యేకతను నిర్ధారిస్తుంది.

  3. బేస్62 కోడింగ్: 20 బైట్‌ల (టైమ్‌స్టాంప్ + యాదృచ్ఛిక) కలయికను బేస్62 (A-Z, a-z, 0-9) ఉపయోగించి కోడ్ చేయబడుతుంది, ఇది తుది 27-అక్షరాల స్ట్రింగ్‌ను ఉత్పత్తి చేస్తుంది.

KSUID సూత్రం

KSUIDను గణితంగా క్రింద చూపించినట్లుగా ప్రదర్శించవచ్చు:

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

ఇక్కడ:

  • TT 32-బిట్ టైమ్‌స్టాంప్
  • RR 128-బిట్ యాదృచ్ఛిక భాగం
  • || అనుసంధానం సూచిస్తుంది

టైమ్‌స్టాంప్ TTను క్రింద చూపించినట్లుగా లెక్కించబడుతుంది:

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

ఇక్కడ KSUID_epoch 1400000000 (2014-05-13T16:53:20Z).

KSUID నిర్మాణం చిత్రకళ

టైమ్‌స్టాంప్ (4 బైట్‌లు) యాదృచ్ఛిక భాగం (16 బైట్‌లు)

KSUIDల ఉపయోగాలు

KSUIDలు ప్రత్యేకంగా క్రింది సందర్భాలలో ఉపయోగపడతాయి:

  1. పంపిణీ వ్యవస్థలు: మీరు అనేక సర్వర్లు లేదా సేవల మధ్య ప్రత్యేక గుర్తింపులను సమన్వయం చేయకుండా అవసరమైనప్పుడు.

  2. టైమ్-సార్టబుల్ డేటా: మీరు ప్రత్యేక టైమ్‌స్టాంప్‌ను నిల్వ చేయకుండా సృష్టి సమయానికి ఆధారంగా డేటాను సార్టు చేయాలనుకుంటే.

  3. డేటాబేస్ కీలు: ముఖ్య కీగా డేటాబేస్‌లలో, ప్రత్యేకంగా పంపిణీ డేటాబేస్‌లలో, ఆటో-ఇంక్రిమెంటింగ్ సంఖ్యలు అనుకూలంగా లేని సందర్భంలో.

  4. URL-సురక్షిత గుర్తింపులు: వెబ్ అప్లికేషన్లలో వనరుల కోసం చిన్న, ప్రత్యేక, URL-సురక్షిత గుర్తింపులను సృష్టించడానికి.

  5. లాగ్ సంబంధం: మైక్రోసర్వీసుల నిర్మాణంలో వివిధ సేవల మధ్య లాగ్ ఎంట్రీలను సంబంధం చేసుకోవడానికి.

KSUIDల ప్రయోజనాలు

KSUIDలు ఇతర గుర్తింపు వ్యవస్థలపై అనేక ప్రయోజనాలను అందిస్తాయి:

  1. సార్టబిలిటీ: UUIDలతో పోలిస్తే, KSUIDలు కాలానుగుణంగా సార్టు చేయబడవచ్చు, ఇది డేటాబేస్ సూచిక మరియు లాగ్ విశ్లేషణకు ఉపయోగకరంగా ఉంటుంది.

  2. సమన్వయం అవసరం లేదు: ఆటో-ఇంక్రిమెంటింగ్ IDలతో పోలిస్తే, KSUIDలు వివిధ సర్వర్ల ద్వారా స్వతంత్రంగా ఉత్పత్తి చేయబడవచ్చు, కాబట్టి కొలిషన్లను ప్రమాదంలో ఉంచవు.

  3. సంక్షిప్త ప్రాతినిధ్యం: 27 అక్షరాలతో, KSUIDలు స్ట్రింగ్‌లుగా ప్రాతినిధ్యం వహించినప్పుడు UUIDల కంటే ఎక్కువ సంక్షిప్తంగా ఉంటాయి.

  4. టైమ్‌స్టాంప్ ఎంబెడెడ్: ఎంబెడెడ్ టైమ్‌స్టాంప్ ప్రత్యేక టైమ్‌స్టాంప్ ఫీల్డ్‌ను అవసరం లేకుండా కాలానుగుణంగా సార్టింగ్ మరియు ఫిల్టరింగ్‌కు అనుమతిస్తుంది.

  5. URL-సురక్షిత: బేస్62 కోడింగ్ KSUIDలను URLలలో ఉపయోగించడానికి సురక్షితంగా చేస్తుంది, అదనపు కోడింగ్ అవసరం లేకుండా.

  6. కొలిషన్ అవకాశాన్ని తగ్గించడం: 16-బైట్ యాదృచ్ఛిక భాగం కొలిషన్లను అత్యంత అసాధ్యంగా చేస్తుంది, అధిక ఉత్పత్తి రేట్లలో కూడా.

ఈ జనరేటర్‌ను ఎలా ఉపయోగించాలి

  1. అవసరమైతే ఏదైనా అదనపు పరామితులను నమోదు చేయండి (ఉదాహరణకు, కస్టమ్ టైమ్‌స్టాంప్).
  2. కొత్త KSUIDను సృష్టించడానికి "Generate KSUID" బటన్‌ను క్లిక్ చేయండి.
  3. ఉత్పత్తి చేయబడిన KSUID అవుట్‌పుట్ ఫీల్డ్‌లో ప్రదర్శించబడుతుంది.
  4. మీరు 1-3 దశలను పునరావృతించడం ద్వారా అనేక KSUIDలను ఉత్పత్తి చేయవచ్చు.
  5. ప్రతి KSUID పక్కన ఉన్న "Copy" బటన్‌ను ఉపయోగించి మీ క్లిప్‌బోర్డుకు కాపీ చేయండి.
  6. ఐచ్ఛికంగా, ఉత్పత్తి చేసిన KSUIDల జాబితాను డౌన్‌లోడ్ చేయడానికి "Export" ఫీచర్‌ను ఉపయోగించండి.

ప్రతి KSUID ప్రత్యేకమైనది మరియు ఒకసారి మాత్రమే ఉపయోగించాలి. ప్రత్యేక గుర్తింపు అవసరమైన ప్రతిసారీ కొత్త KSUIDను ఉత్పత్తి చేయండి.

కోడ్ ఉదాహరణలు

క్రింది వివిధ ప్రోగ్రామింగ్ భాషల్లో KSUIDలను ఉత్పత్తి చేయడానికి ఉదాహరణలు ఉన్నాయి:

## పైన
import ksuid

new_id = ksuid.ksuid()
print(f"Generated KSUID: {new_id}")
// జావాస్క్రిప్ట్
const { ksuid } = require('ksuid')

const newId = ksuid()
console.log(`Generated KSUID: ${newId}`)
// జావా
import com.github.ksuid.KsuidGenerator;

public class KsuidExample {
    public static void main(String[] args) {
        String newId = KsuidGenerator.generate();
        System.out.println("Generated KSUID: " + newId);
    }
}
// C++
#include <iostream>
#include <ksuid/ksuid.hpp>

int main() {
    ksuid::Ksuid newId = ksuid::Ksuid::generate();
    std::cout << "Generated KSUID: " << newId.string() << std::endl;
    return 0;
}
## రూబీ
require 'ksuid'

new_id = KSUID.new
puts "Generated KSUID: #{new_id}"
// PHP
<?php
require_once 'vendor/autoload.php';

use Tuupola\KsuidFactory;

$factory = new KsuidFactory();
$newId = $factory->create();
echo "Generated KSUID: " . $newId . "\n";
?>
// గో
package main

import (
    "fmt"
    "github.com/segmentio/ksuid"
)

func main() {
    newId := ksuid.New()
    fmt.Printf("Generated KSUID: %s\n", newId.String())
}
// స్విఫ్ట్
import KSUID

let newId = KSUID()
print("Generated KSUID: \(newId)")

సూచనలు

  1. Segment యొక్క KSUID GitHub నిల్వ: https://github.com/segmentio/ksuid
  2. "మంచి ప్రత్యేక గుర్తింపులను రూపొందించడం" - పీటర్ బోర్గన్: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. KSUID స్పెసిఫికేషన్: https://github.com/segmentio/ksuid/blob/master/README.md
అభిప్రాయం