ਵੰਡਿਤ ਸਿਸਟਮਾਂ, ਡੇਟਾਬੇਸਾਂ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਿਲੱਖਣ, ਸਮੇਂ-ਸਰਣੀਬੱਧ ਕੁੰਜੀਆਂ ਦੀ ਲੋੜ ਲਈ K-ਸਰਣੀਬੱਧ ਵਿਲੱਖਣ ਪਛਾਣਕਰਤਿਆਂ (KSUIDs) ਨੂੰ ਜਨਰੇਟ ਕਰੋ। KSUIDs ਇੱਕ ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਯਾਦਰੱਖਣ ਵਾਲੇ ਡੇਟਾ ਨਾਲ ਜੋੜਦੇ ਹਨ ਤਾਂ ਜੋ ਟਕਰਾਅ-ਰੋਧੀ, ਸਰਣੀਬੱਧ ਪਛਾਣਕਰਤਿਆਂ ਨੂੰ ਬਣਾਇਆ ਜਾ ਸਕੇ।
ਇੱਕ KSUID ਜਨਰੇਟਰ K-ਸੋਰਟੇਬਲ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਸਮੇਂ ਦੇ ਆਧਾਰ 'ਤੇ ਸੋਰਟਿੰਗ ਨੂੰ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਵਿਲੱਖਣਤਾ ਨਾਲ ਜੋੜਦਾ ਹੈ। ਪਰੰਪਰਾਗਤ UUIDs ਦੇ ਮੁਕਾਬਲੇ, KSUIDs ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਸੋਰਟੇਬਲ ਹੁੰਦੇ ਹਨ ਅਤੇ ਵਿਤਰਿਤ ਪ੍ਰਣਾਲੀਆਂ ਲਈ ਬੇਹਤਰੀਨ ਹੁੰਦੇ ਹਨ ਜੋ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ ਜਨਰੇਸ਼ਨ ਦੀ ਲੋੜ ਰੱਖਦੇ ਹਨ ਬਿਨਾਂ ਸਰਵਰਾਂ ਵਿਚ ਸਹਿਯੋਗ ਦੇ।
KSUID ਜਨਰੇਟਰ ਦੇ ਮੁੱਖ ਫਾਇਦੇ:
ਇੱਕ KSUID (K-ਸੋਰਟੇਬਲ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ) 20-ਬਾਈਟ ਦਾ ਸੋਰਟੇਬਲ ਆਈਡੈਂਟੀਫਾਇਰ ਹੈ ਜੋ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:
ਜਦੋਂ ਇਸਨੂੰ ਇੱਕ ਸਟਰਿੰਗ ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ KSUID ਬੇਸ62 ਵਿੱਚ ਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ ਬਿਲਕੁਲ 27 ਅੱਖਰ ਲੰਬਾ ਹੁੰਦਾ ਹੈ।
KSUID ਢਾਂਚਾ ਤਿੰਨ ਮੁੱਖ ਘਟਕਾਂ 'ਤੇ مشتمل ਹੈ:
ਟਾਈਮਸਟੈਂਪ ਘਟਕ (4 ਬਾਈਟ): KSUID ਯੁਗ (2014-05-13T16:53:20Z) ਤੋਂ ਸੈਕੰਡ ਦਰਸਾਉਂਦਾ ਹੈ, ਜੋ ਬਣਾਏ ਗਏ ਆਈਡੀਜ਼ ਦੀ ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਸੋਰਟਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
ਰੈਂਡਮ ਘਟਕ (16 ਬਾਈਟ): ਇੱਕ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਰੈਂਡਮ ਨੰਬਰ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਵਿਲੱਖਣਤਾ ਹੈ ਭਾਵੇਂ ਕਈ KSUIDs ਇਕੱਠੇ ਬਣਾਏ ਜਾ ਰਹੇ ਹੋਣ।
ਬੇਸ62 ਕੋਡਿੰਗ: ਮਿਲੇ ਹੋਏ 20 ਬਾਈਟਾਂ ਨੂੰ ਬੇਸ62 (A-Z, a-z, 0-9) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋ ਆਖਰੀ 27-ਅੱਖਰਾਂ ਵਾਲੀ URL-ਸੁਰੱਖਿਅਤ ਸਟਰਿੰਗ ਬਣਾਈ ਜਾ ਸਕੇ।
ਇੱਕ KSUID ਨੂੰ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਇਸ ਤਰ੍ਹਾਂ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ:
ਜਿੱਥੇ:
ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ:
T = \text{floor}(\text{current_time} - \text{KSUID_epoch})
ਜਿੱਥੇ KSUID_epoch 1400000000 (2014-05-13T16:53:20Z) ਹੈ।
KSUIDs ਆਧੁਨਿਕ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਆਦਰਸ਼ ਹਨ ਜੋ ਸੋਰਟੇਬਲ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ ਦੀ ਲੋੜ ਰੱਖਦੇ ਹਨ। ਇੱਥੇ ਸਭ ਤੋਂ ਆਮ ਉਪਯੋਗ ਕੇਸ ਹਨ:
ਕਈ ਸਰਵਰਾਂ 'ਤੇ ਯੂਨੀਕ ਆਈਡੀ ਬਣਾਓ ਬਿਨਾਂ ਸਹਿਯੋਗ ਜਾਂ ਕੇਂਦਰੀ ਅਧਿਕਾਰ ਦੇ। ਮਾਈਕਰੋਸਰਵਿਸ ਆਰਕੀਟੈਕਚਰ ਲਈ ਬੇਹਤਰੀਨ।
ਜਿੱਥੇ ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਆਰਡਰਿੰਗ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਉੱਥੇ KSUIDs ਨੂੰ ਡੇਟਾਬੇਸ ਵਿੱਚ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀਆਂ ਵਜੋਂ ਵਰਤੋਂ ਕਰੋ, ਵੱਖਰੇ ਟਾਈਮਸਟੈਂਪ ਕਾਲਮ ਦੀ ਲੋੜ ਨੂੰ ਖਤਮ ਕਰਦੇ ਹੋਏ।
ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ, APIs, ਅਤੇ ਜਨਤਕ ਸਰੋਤਾਂ ਲਈ ਛੋਟੇ, ਯੂਨੀਕ, URL-ਸੁਰੱਖਿਅਤ ਆਈਡੈਂਟੀਫਾਇਰ ਬਣਾਓ ਬਿਨਾਂ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਕੋਡਿੰਗ ਦੇ।
ਵਿਤਰਿਤ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਸੇਵਾਵਾਂ ਦੇ ਲੌਗ ਐਂਟਰੀਜ਼ ਨੂੰ ਕੋਰਲੇਟ ਕਰੋ ਜਦੋਂ ਕਿ ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਆਰਡਰ ਨੂੰ ਬਣਾਈ ਰੱਖਦੇ ਹੋ।
ਬਣਿਆ ਹੋਇਆ ਟਾਈਮਸਟੈਂਪ ਨਾਲ ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਤੌਰ 'ਤੇ ਇਵੈਂਟਾਂ ਨੂੰ ਟ੍ਰੈਕ ਕਰੋ ਜੋ ਪਾਲਣਾ ਅਤੇ ਡਿਬੱਗਿੰਗ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਹੈ।
KSUIDs ਪਰੰਪਰਾਗਤ ਆਈਡੈਂਟੀਫਾਇਰ ਸਿਸਟਮਾਂ ਦੇ ਮੁਕਾਬਲੇ ਮਹੱਤਵਪੂਰਨ ਫਾਇਦੇ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ:
UUIDs ਦੇ ਮੁਕਾਬਲੇ, KSUIDs ਨੂੰ ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਤੌਰ 'ਤੇ ਸੋਰਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਹ ਡੇਟਾਬੇਸ ਇੰਡੈਕਸਿੰਗ ਅਤੇ ਲੌਗ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਆਦਰਸ਼ ਬਣ ਜਾਂਦੇ ਹਨ।
ਕਈ ਸਰਵਰਾਂ 'ਤੇ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰਾਂ ਨੂੰ ਸੁਤੰਤਰਤਾ ਨਾਲ ਬਣਾਓ ਬਿਨਾਂ ਟਕਰਾਅ ਦੇ ਖਤਰੇ ਜਾਂ ਕੇਂਦਰੀ ਸਹਿਯੋਗ ਦੀ ਲੋੜ।
UUIDs ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਸੰਕੁਚਿਤ ਜਦੋਂ ਸਟਰਿੰਗ ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ, ਸਟੋਰੇਜ ਸਪੇਸ ਬਚਾਉਂਦਾ ਹੈ ਅਤੇ ਪੜ੍ਹਨਯੋਗਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹੈ।
ਬਣਿਆ ਹੋਇਆ ਟਾਈਮਸਟੈਂਪ ਸਮੇਂ ਦੇ ਆਧਾਰ 'ਤੇ ਸੋਰਟਿੰਗ ਅਤੇ ਫਿਲਟਰਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਬਿਨਾਂ ਵੱਖਰੇ ਟਾਈਮਸਟੈਂਪ ਫੀਲਡ।
ਬੇਸ62 ਕੋਡਿੰਗ KSUIDs ਨੂੰ URLs ਲਈ ਸੁਰੱਖਿਅਤ ਬਣਾਉਂਦੀ ਹੈ ਬਿਨਾਂ ਵਾਧੂ ਕੋਡਿੰਗ ਦੀ ਲੋੜ।
16-ਬਾਈਟ ਦਾ ਰੈਂਡਮ ਘਟਕ ਟਕਰਾਅ ਨੂੰ ਵਿਰਚੁਅਲੀ ਅਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ, ਭਾਵੇਂ ਉੱਚ ਜਨਰੇਸ਼ਨ ਦਰਾਂ 'ਤੇ ਵੀ।
KSUIDs ਆਨਲਾਈਨ ਬਣਾਉਣ ਲਈ ਇਹ ਸਧਾਰਨ ਕਦਮ ਫੋਲੋ ਕਰੋ:
ਪ੍ਰੋ ਟਿਪ: ਨਵੇਂ ਸਿਸਟਮ ਸੈਟਅਪ ਜਾਂ ਮੌਜੂਦਾ ਡੇਟਾ ਨੂੰ ਮਾਈਗਰੇਟ ਕਰਨ ਵੇਲੇ ਬੈਚ ਵਿੱਚ KSUIDs ਬਣਾਓ।
ਆਪਣੀ ਪਸੰਦ ਦੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ 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
KSUIDs ਕ੍ਰੋਨੋਲੋਜੀਕਲ ਤੌਰ 'ਤੇ ਸੋਰਟੇਬਲ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਕਿ UUIDs ਨਹੀਂ ਹੁੰਦੇ। KSUIDs ਵਿੱਚ ਐਮਬੈੱਡਡ ਟਾਈਮਸਟੈਂਪ ਹੁੰਦੇ ਹਨ ਅਤੇ ਇਹ 27 ਅੱਖਰਾਂ ਵਿੱਚ UUID ਦੇ 36 ਅੱਖਰਾਂ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਸੰਕੁਚਿਤ ਹੁੰਦੇ ਹਨ।
KSUIDs ਦੇ ਬਹੁਤ ਹੀ ਘੱਟ ਟਕਰਾਅ ਦੀ ਸੰਭਾਵਨਾ ਹੁੰਦੀ ਹੈ ਕਿਉਂਕਿ ਇਹ 16-ਬਾਈਟ ਦੇ ਰੈਂਡਮ ਘਟਕ 'ਤੇ ਆਧਾਰਿਤ ਹੁੰਦੇ ਹਨ। ਟਕਰਾਅ ਦੀ ਸੰਭਾਵਨਾ ਵਿਰਚੁਅਲੀ ਜ਼ੀਰੋ ਹੈ ਭਾਵੇਂ ਬਿਲੀਅਨ ਆਈਡੀਜ਼ ਬਣਾਏ ਜਾ ਰਹੇ ਹੋਣ।
ਹਾਂ, KSUIDs ਡੇਟਾਬੇਸ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀਆਂ ਲਈ ਬੇਹਤਰੀਨ ਹਨ, ਖਾਸ ਕਰਕੇ ਵਿਤਰਿਤ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਜਿੱਥੇ ਆਟੋ-ਇੰਕ੍ਰਿਮੈਂਟਿੰਗ ਇੰਟੀਜਰ ਉਚਿਤ ਨਹੀਂ ਹੁੰਦੇ।
KSUID ਯੁਗ 2014-05-13T16:53:20Z (ਟਾਈਮਸਟੈਂਪ 1400000000) ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਜੋ ਯੂਨਿਕ ਯੁਗ ਤੋਂ ਵੱਖਰੀ ਹੈ।
ਹਾਂ, KSUIDs ਬੇਸ62 ਕੋਡਿੰਗ (A-Z, a-z, 0-9) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਜਿਸ ਨਾਲ ਇਹ ਬਿਨਾਂ ਵਾਧੂ ਕੋਡਿੰਗ ਦੇ ਪੂਰੀ ਤਰ੍ਹਾਂ URL-ਸੁਰੱਖਿਅਤ ਹੁੰਦੇ ਹਨ।
KSUIDs ਨੂੰ ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਪ੍ਰਣਾਲੀਆਂ ਜਾਂ ਡੇਟਾਬੇਸ ਲੁਕਅਪ ਵਿਚ ਸਹਿਯੋਗ ਦੀ ਲੋੜ ਨਹੀਂ ਰੱਖਦੇ।
ਹਾਂ, ਤੁਸੀਂ ਕਿਸੇ ਵੀ KSUID ਤੋਂ ਐਮਬੈੱਡਡ ਟਾਈਮਸਟੈਂਪ ਨਿਕਾਲ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ ਇਹ ਪਤਾ ਲਗਾਇਆ ਜਾ ਸਕੇ ਕਿ ਇਹ ਕਦੋਂ ਬਣਾਇਆ ਗਿਆ ਸੀ।
KSUIDs ਜ਼ਿਆਦਾਤਰ ਪ੍ਰਸਿੱਧ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਸਮਰਥਿਤ ਹਨ ਜਿਨ੍ਹਾਂ ਵਿੱਚ Python, JavaScript, Java, Go, PHP, Ruby, ਅਤੇ ਹੋਰ ਸ਼ਾਮਲ ਹਨ।
ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਸੋਰਟੇਬਲ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ ਲਾਗੂ ਕਰਨ ਲਈ ਤਿਆਰ? ਆਪਣੇ ਵਿਤਰਿਤ ਪ੍ਰਣਾਲੀਆਂ, ਡੇਟਾਬੇਸ, ਅਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਸਮੇਂ-ਆਧਾਰਿਤ, ਗਲੋਬਲ ਯੂਨੀਕ ਆਈਡੈਂਟੀਫਾਇਰ ਬਣਾਉਣ ਲਈ ਸਾਡੇ ਮੁਫ਼ਤ KSUID ਜਨਰੇਟਰ ਟੂ
ਆਪਣੇ ਕਾਰਜ ਦੇ ਲਈ ਵਰਤਣ ਯੋਗ ਹੋਣ ਵਾਲੇ ਹੋਰ ਸੰਦੇਸ਼ ਦੀ ਖੋਜ ਕਰੋ