KSUID உருவாக்கி: தனித்துவமான மற்றும் கால அடிப்படையிலான விசைகள்
வகுப்பில் உள்ள அமைப்புகள், தரவுத்தொகுப்புகள் மற்றும் தனித்துவமான, காலம் அடிப்படையில் வகைப்படுத்தக்கூடிய விசைகளை தேவைப்படும் பயன்பாடுகளுக்காக K-Sortable Unique Identifiers (KSUIDs) உருவாக்கவும். KSUIDs, நேரத்தை அடிப்படையாகக் கொண்டு மாறுபட்ட தரவுடன் சேர்க்கப்பட்டு, மோதல் எதிர்ப்பு, வகைப்படுத்தக்கூடிய அடையாளங்களை உருவாக்குகிறது.
KSUID உருவாக்கி
ஆவணம்
KSUID உருவாக்கி
அறிமுகம்
KSUID (K-Sortable Unique IDentifier) என்பது பாரம்பரிய UUID (Universally Unique Identifier) மற்றும் பிற அடையாள அமைப்புகளுக்கு மாறாக பல நன்மைகளை வழங்கும் தனித்துவமான அடையாள வடிவமாகும். இந்த கருவி, நீங்கள் KSUID-ஐ விரைவாக மற்றும் எளிதாக உருவாக்க அனுமதிக்கிறது.
KSUID என்பது என்ன?
KSUID என்பது 20-பைட் வரிசைப்படுத்தக்கூடிய அடையாளமாகும், இது அடிப்படையில்:
- 32-பைட் காலம் (4 பைட்)
- 16 பைட்டுகளின் சீரற்ற தன்மை
ஒரு ஸ்டிரிங்காக பிரதிநிதித்துவப்படுத்தப்படும் போது, KSUID அடிப்படையில் base62 இல் குறியாக்கப்படுகிறது மற்றும் 27 எழுத்துக்களைக் கொண்டது.
KSUID-இன் அமைப்பு
KSUID-இன் அமைப்பை கீழே உள்ளவாறு உடைக்கலாம்:
-
காலம் (4 பைட்): இது Unix காலக்கெட்டியின் (1970-ஆம் ஆண்டு ஜனவரி 1, 00:00 UTC) பிறகு கடந்த விநாடிகளை பிரதிநிதித்துவப்படுத்துகிறது. காலம் KSUID-ஐ உருவாக்கும் நேரத்தின் அடிப்படையில் வரிசைப்படுத்துவதற்கு உதவுகிறது.
-
சீரற்ற கூறு (16 பைட்): இது ஒரு கிரிப்டோகிராபிகல் பாதுகாப்பான சீரற்ற எண்ணிக்கை ஆகும், இது ஒரே விநாடியில் பல KSUID-களை உருவாக்கும் போது தனித்துவத்தை உறுதி செய்கிறது.
-
Base62 குறியாக்கம்: இணைக்கப்பட்ட 20 பைட்டுகள் (காலம் + சீரற்ற) பின்னர் base62 (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 அமைப்பு வரைபடம்
KSUID-களுக்கான பயன்பாடுகள்
KSUID-கள் குறிப்பாக கீழ்க்காணும் நிலைகளில் பயனுள்ளதாக இருக்கின்றன:
-
விநியோகிக்கப்பட்ட அமைப்புகள்: பல சேவைகள் அல்லது சேவைகளில் ஒரே நேரத்தில் தனித்துவமான அடையாளங்களை தேவைப்படும் போது.
-
காலத்தில் வரிசைப்படுத்தக்கூடிய தரவுகள்: தனித்துவமான அடையாளங்களை உருவாக்கும் போது தனித்துவமான காலத்தைச் சேமிக்காமல் தரவுகளை உருவாக்க விரும்பும் போது.
-
தரவுத்தள விசைகள்: குறிப்பாக தானாகவே அதிகரிக்கும் முழு எண்கள் பொருந்தாத விநியோகிக்கப்பட்ட தரவுத்தளங்களில் முதன்மை விசைகளாக.
-
URL-க்கு பாதுகாப்பான அடையாளங்கள்: இணைய பயன்பாடுகளில் வளங்களை உருவாக்குவதற்கான குறுகிய, தனித்துவமான, URL-க்கு பாதுகாப்பான அடையாளங்களை உருவாக்க.
-
பதிவு ஒத்திசைவு: மைக்ரோசர்வீசுகள் கட்டமைப்பில் பல்வேறு சேவைகளில் பதிவு உள்ளீடுகளை ஒத்திசைவதற்கான.
KSUID-களின் நன்மைகள்
KSUID-கள் பிற அடையாள அமைப்புகளுக்கு மாறாக பல நன்மைகளை வழங்குகின்றன:
-
வரிசைப்படுத்துதல்: UUID-களுக்கு மாறாக, KSUID-கள் கால வரிசைப்படுத்துவதற்கான, இது தரவுத்தளத்திற்கான குறியீடு மற்றும் பதிவு பகுப்பாய்வுக்கு பயனுள்ளதாக இருக்கிறது.
-
ஒருங்கிணைப்பு தேவை இல்லை: தானாகவே அதிகரிக்கும் அடையாளங்களுக்கு மாறாக, KSUID-கள் மோதல்களை தவிர்க்காமல் பல சேவைகளால் சுயமாக உருவாக்கப்படலாம்.
-
சுருக்கமான பிரதிநிதித்துவம்: 27 எழுத்துக்களாக, KSUID-கள் ஸ்டிரிங்காக பிரதிநிதித்துவப்படுத்தும்போது UUID-களுக்குப் பதிலாக அதிக சுருக்கமானவை.
-
காலம் உள்ளடக்கப்பட்டுள்ளது: உள்ளடக்கப்பட்ட காலம் தனித்துவமான கால அடிப்படையில் வரிசைப்படுத்துவதற்கும் வடிகட்டுவதற்கும் தனித்துவமான காலத்தைப் பெறுவதற்கான.
-
URL-க்கு பாதுகாப்பானது: base62 குறியாக்கம் KSUID-களை URL-ல் எந்த கூடுதல் குறியாக்கமும் இல்லாமல் பயன்படுத்துவதற்கான பாதுகாப்பாக செய்கிறது.
-
மோதல் வாய்ப்பு குறைவாக: 16-பைட் சீரற்ற கூறு, அதிக அளவில் உருவாக்கும் போது மோதல்கள் மிகவும் சாத்தியமற்றதாக இருக்கிறது.
இந்த உருவாக்கியைப் பயன்படுத்துவது எப்படி
- தேவையான பிற அளவீடுகளை உள்ளிடவும் (எ.கா., தனிப்பயனாக்கப்பட்ட காலம்).
- புதிய KSUID-ஐ உருவாக்க "KSUID உருவாக்கவும்" பொத்தானை அழுத்தவும்.
- உருவாக்கப்பட்ட KSUID வெளியீட்டு புலத்தில் காட்டப்படும்.
- நீங்கள் பல KSUID-களை உருவாக்க, படி 1-3-ஐ மீண்டும் செய்யலாம்.
- ஒவ்வொரு KSUID-க்கும், அதை உங்கள் கிளிப்போர்டுக்கு நகலெடுக்க "நகலெடுக்கவும்" பொத்தானைப் பயன்படுத்தவும்.
- விருப்பமாக, உருவாக்கப்பட்ட KSUID-க்களின் பட்டியலைப் பதிவிறக்க "ஏற்றுமதி" அம்சத்தைப் பயன்படுத்தவும்.
ஒவ்வொரு KSUID-வும் தனித்துவமானது மற்றும் ஒருமுறை மட்டுமே பயன்படுத்தப்பட வேண்டும் என்பதை நினைவில் கொள்ளுங்கள். தனித்துவமான அடையாளம் தேவைப்படும் ஒவ்வொரு முறையும் புதிய KSUID-ஐ உருவாக்குங்கள்.
குறியீட்டு எடுத்துக்காட்டுகள்
பல நிரலாக்க மொழிகளில் KSUID-களை உருவாக்குவதற்கான எடுத்துக்காட்டுகள்:
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
கருத்து
இந்த கருவியை பற்றிய கருத்தை தொடங்க பிடித்தம் கிளிக் செய்யவும்.
தொடர்புடைய கருவிகள்
உங்கள் பணிப்பாக்கிலுக்கு பயனுள்ள மேலும் பயனுள்ள கருவிகளைக் கண்டறியவும்