C#用IdHelper包生成唯一的雪花Id

为什么使用雪花ID

在以前的项目中,最常见的两种主键类型是自增Id和UUID,在比较这两种ID之前首先要搞明白一个问题,就是为什么主键有序比无序查询效率要快,因为自增Id和UUID之间最大的不同点就在于有序性。.

雪花ID是用一个64位的整形数字来做ID,对应.net中的long,数据库中的bigint,雪花算法的原始版本是scala版,用于生成分布式ID(纯数字,时间顺序),订单编号等。

自增ID:对于数据敏感场景不宜使用,且不适合于分布式场景。
GUID:采用无意义字符串,数据量增大时造成访问过慢,且不宜排序。

那雪花id到底在.net怎么使用呢,话不多说开撸!

安装:

打开nuget包管理工具搜索IdHelper,安装图中的两个包;

C#用IdHelper包生成唯一的雪花Id

使用:

1首先,你需要进行配置workid。这个可以在程序的人口设置一下就可以;下面我演示一下mvc中在Global.asax下的引用;

    C#用IdHelper包生成唯一的雪花Id

  C#用IdHelper包生成唯一的雪花Id

2安装之后需要进行简单的引用,引用到你所使用的类中。然后如图所示就可以获取一个雪花Id(如“1371659390377005056”)了。;

C#用IdHelper包生成唯一的雪花Id

其他:

并且这个Idhelper中还封装有很多方法,图中都有备注。

C#用IdHelper包生成唯一的雪花Id

这些根据大家所需要的进行调用,本文就是简单的记一下。方便使用,不需要重新写和封装了。感谢观看!