Skip to content

Snowflake, use Swift. Generate unique incremental ID 基于`Swift`的雪花算法的实现,采用传统算法,生成递增的唯一ID

License

Notifications You must be signed in to change notification settings

DamonHu/SnowflakeSwift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnowflakeSwift

Snowflake, use Swift. Generate unique incremental ID

基于Swift的雪花算法的实现,采用传统算法,生成递增的唯一ID。如果遇到时钟回拨,生成的为nil,让业务层面处理即可。

雪花算法twitter开源的用于分布式环境下生成唯一ID的算法,原始版本snowflake使用Scala开源,基于时间戳递增的属性。作为数据库的主键比UUID有着更快的读写。各个变量长度可以根据业务进行改进,该库是基于最原生的实现。

使用

SnowflakeSwift.swift文件拖入项目即可

//创建
let general = SnowflakeSwift(IDCID: 4, machineID: 30)
//生成唯一ID
let id = general.nextID()

通过id也可以得出生成的时间、机房ID、机器ID

let time = general.time(id: id)
let idcID = general.IDC(id: id)
let machineID = general.machine(id: id)

About

Snowflake, use Swift. Generate unique incremental ID 基于`Swift`的雪花算法的实现,采用传统算法,生成递增的唯一ID

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages