一个golang的int64 ID生成库,已在生产环境中使用

自己发布在github.com的一个ID生成库,可以解决在golang项目中,需要生成hash的id编号问题。我已经在自己的项目中使用,用于替换mysql的自增ID的问题。

代码原理:

  1. 使用 github.com/rs/xid 的uuid生成一个uuid string;
  2. 使用golang的crc32,把uuid转换成int64;

项目地址:

https://github.com/zituocn/ids

安装

go get github.com/zituocn/ids

项目中使用

id:=ids.New()

使用demo

package main

import (
    "fmt"
    "github.com/zituocn/ids"
)

func main() {
    for i := 0; i < 10; i++ {
        fmt.Println(ids.New())
    }
}

输出:

3965461245
4773867
4115076028
1326006572
3120989563
1444049005
2736632890
2101289902
2284906489
1680085743