Skip to content

Latest commit

 

History

History
63 lines (37 loc) · 1.55 KB

README.md

File metadata and controls

63 lines (37 loc) · 1.55 KB

id generator

Build Status license

介绍

  • 基于snowflake算法实现的id生成器
  • 这是go版本,java版本可查看IdWorker.java

使用

go get github.com/sumory/idgen

使用前请先了解snowflake算法,并知晓其注意事项.

基本使用

每个由idgen生成的id都是int64的正整数,且每个id都可以解析得到它的生成者的标识workerId.

workerId := 1
err, idWorker := idgen.NewIdWorker(workerId)
err, nextId := idWorker.NextId()
获取short Id

idgen使用baseN4go缩短id,具体参见baseN4go使用方法.

workerId := 1
err, idWorker := idgen.NewIdWorker(workerId)
err, nextId := idWorker.ShortId()
获取生成器标识workerId
workerId := 1
err, idWorker := idgen.NewIdWorker(workerId)
err, nextId := idWorker.NextId()
wId := idWorker.WorkerId(newId)//wId == workerId
其它

参见测试文件idgen_test.go和源文件

测试

需要goconvey支持

go get github.com/smartystreets/goconvey
go test -v -cover // or $GOPATH/bin/goconvey