golang 常用方法或模块
雪花算法生成ID
工具库 github.com/bwmarrin/snowflake
package snowflake
import (
"github.com/bwmarrin/snowflake"
"time"
)
var node *snowflake.Node
// Init 初始化节点,能够使用69年
// startTime 起始时间,起始时间可以设置为项目开始时间,如 2025-12-01
// machineID 机器id
func Init(startTime string, machineID int64) (err error) {
// 设置起始时间
var st time.Time
st, err = time.Parse(time.DateOnly, startTime)
if err != nil {
return
}
snowflake.Epoch = st.UnixNano() / 1000000
// 创建节点
node, err = snowflake.NewNode(machineID)
return
}
// GenId 生成唯一id
func GenId() int64 {
return node.Generate().Int64()
}
本文来自博客园,作者:一个小笨蛋,转载请注明原文链接:https://www.cnblogs.com/paylove/p/19296718

浙公网安备 33010602011771号