代码拉取完成,页面将自动刷新
分布式唯一Id生成器,基于雪花算法(SnowFlake),可以生成更快,位数更短。多语言版本让Id可以在前端、后端、数据库中多端生成,支持JS/C#/JAVA/SQL/C语言。
分布式Id,指在不同地方生成的Id基本能保证唯一,这样就不需要集中在一个服务器上管理Id的生成。
一个分布式Id,占用12个字节,24个16进制字符,相当于数据库中长度char(24)
1个Id = 12个字节 = 24个字符 = char(24)
1个字节 = 2个字符 = 8个bit
<html>
<head>
<script src="id.min.js"></script>
</head>
<body>
<script>
var id = Id.generateString();
document.write(id);
</script>
</body>
</html>
Nuget搜索SiliS.Id安装
生成字符串类型的id
using App;
using System;
namespace App.Test
{
class Program
{
static void Main(string[] args)
{
var id = Id.GenerateString();
Console.WriteLine(id);
}
}
}
new一个带实体泛型的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语言版本,需要在调用完后主动释放id的内存
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型