JmoVxia / SnowflakeSwift

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

Home Page:https://blog.hudongdong.com/swift/1213.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

https://blog.hudongdong.com/swift/1213.html

License:MIT License


Languages

Language:Swift 100.0%