Распределённый генератор уникальных идентификаторов, основанный на алгоритме SnowFlake, позволяет генерировать более быстрые и короткие идентификаторы. Многоязыковая версия генератора позволяет создавать идентификаторы в различных средах: на фронтенде, бэкенде и в базе данных, поддерживая языки JavaScript, C#, Java, SQL и C.
Распределенный идентификатор — это идентификатор, который может быть сгенерирован в разных местах и при этом гарантировать свою уникальность. Это избавляет от необходимости централизованного управления генерацией идентификатора на одном сервере.
Один распределенный идентификатор занимает 12 байт или 24 шестнадцатеричных символа, что эквивалентно длине char(24) в базе данных. Один байт равен двум символам или восьми битам.
1 идентификатор = 12 байтов = 24 символа = char(24)
1 байт = 2 символа = 8 бит
<html>
<head>
<script src="id.min.js"></script>
</head>
<body>
<script>
var id = Id.generateString();
document.write(id);
</script>
</body>
</html>
После поиска «SiliS.Id» в Nuget установите пакет.
Генерация строкового типа идентификатора:
using App;
using System;
namespace App.Test
{
class Program
{
static void Main(string[] args)
{
var id = Id.GenerateString();
Console.WriteLine(id);
}
}
}
Создание объекта идентификатора с универсальным типом сущности:
using App;
using System;
namespace App.Test
{
class Program
{
static void Main(string[] args)
{
var id = new Id<MyEntity>;
Console.WriteLine(id.ToString());
}
}
}
package app.test;
import app.Id;
public class Program
{
public static void main(String []args)
{
String id = Id.generateString();
System.out.println(id);
}
}
SELECT dbo.Id_GenerateChar(RAND()) --生成12byte的Id,再转成24byte的Char类型
SELECT dbo.Id11_GenerateChar(RAND()) --生成11byte的Id,再转成22byteChar类型
SELECT dbo.Id10_GenerateChar(RAND()) --生成10byte的Id,再转成20byte的Char类型
SELECT dbo.Id9_GenerateChar(RAND()) --生成9byte的Id,再转成18byte的Char类型
SELECT dbo.Id8_GenerateChar(RAND()) --生成8byte的Id,再转成16byte的Char类型
SELECT dbo.Id_GenerateBinary(RAND()) --生成12byte的Id,再转成12byte的Binary类型
SELECT dbo.Id11_GenerateBinary(RAND()) --生成11byte的Id,влечёт за собой 11byte的Binary类型
SELECT dbo.Id10_GenerateBinary(RAND()) --生成10byte的Id,再转成10byte的Binary类型
SELECT dbo.Id9_GenerateBinary(RAND()) --生成9byte的Id,再转成9byte的Binary类型
SELECT dbo.Id8_GenerateBinary(RAND()) --生成8byte的Id,再转成8byte的Binary类型
SELECT dbo.Id8_GenerateInt(RAND()) --生成8byte的Id,再转成8byte的Int类型
Поскольку пользовательские функции не допускают генерации случайных чисел (RAND), необходимо передать параметр при вызове.
#include "id.c"
int main()
{
char* id = Id_generateString();
printf("%s", id);
free(id); //необходимо освободить память
return 0;
}
Обратите внимание на версию на языке C, после использования необходимо вручную освободить память, выделенную для идентификатора.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )