前言
前段时间碰到友人在看到唯一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方便一些。
Back to posts