Asjdf

一只在杭电摸鱼的小火鸡

Golang唯一ID生成库特征比较

2023-01-05 大约233字 预计阅读1分钟

# 前言

前段时间碰到友人在看到唯一ID的时候判断不出种类,故专门整理一下不同唯一ID的特征。

# 概览

包名 样例 组成成分 特征
github.com/rs/xid 9m4e2mr0ui3e8a215n4g 4 bytes of time (seconds) + 3 byte machine id + 2 byte process id + 3 bytes random 免配置,可排序
github.com/segmentio/ksuid 0ujsswThIGTUYm2K8FjOOfXtY1K 4 bytes of time (seconds) + 16 random bytes 免配置,可排序
github.com/sony/sonyflake 20f8707d6000108 ~5 bytes of time (10 ms) + 1 byte sequence + 2 bytes machine id 需要机器/DC 配置,需要中央服务器,可排序
github.com/google/uuid 5b52d72c-82b3-4f8e-beb5-437a974842c 16 bytes 免配置,不可排序
github.com/kjk/betterguid -Kmdih_fs4ZZccpx2Hl1 8 bytes of time (milliseconds) + 9 random bytes 免配置,可排序

# 附

根据对比,我推荐一般场景下用xid(虽然我之前推荐snowflake),免配置且可排序,比snowflake方便一些。

闽ICP备2022001901号-1 公安网备图标闽公网安备35030302354429号

主题 atom-hugo-theme