go 基于推特雪花算法生成定长id

基于推特雪花算法生成定长id,属于int64类型。

1 Bit Unused | 41 Bit Timestamp | 10 Bit NodeID | 12 Bit Sequence ID
1 bit
未使用,默认是0。
41bit
存储毫秒级时间戳,当前时间与Nov 04 2010 01:42:54 UTC的时间差。
10bit
存储节点的id,最多支持1024个。
12bit
自增id,同1个节点在1秒内最多生成id数量是4096。
同1个节点,1秒内最多生成4096*1000个id即400多万个。

package main
import (
"fmt"
"strconv"
"github.com/bwmarrin/snowflake"
)
func main() {
// 指定node id是1
node, err := snowflake.NewNode(1)
if err != nil {
fmt.Println(err)
return
}
id := node.Generate()
fmt.Println(id)
// 36是strconv.FormatInt支持的最大进制数
fmt.Println(strconv.FormatInt(int64(id), 36))
}

posted on   王景迁  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
历史上的今天:
2023-10-17 C语言 static和extern
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示