通用唯一识别码UUID小记
在软件开发、数据库管理和分布式系统中,唯一标识符(Unique Identifier)是一个至关重要的概念。我们常常会为实体设计唯一的ID,以保证其在系统中的唯一性,避免实体冲突。自增ID、UUID等唯一标识符便在这样的需求下应运而生。 什么是UUID? UUID(Universally Unique Identifier, 通用唯一识别码)由RFC 4122定义,技术上等同于 ITU-T Rec. X.667 | ISO/IEC 9834-8,最早由开放软件基金会标准化。 标准格式 UUID 的 16 个 8 位字节表示为 32 个十六进制数字,由连字符 '-' 分隔成五组显示,形式为“8-4-4-4-12”总共 36 个字符(32 个十六进制数字和 4 个连字符)。 UUID要求以小写形式生成字符,同时对输入不区分大小写。 形如:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 名称 字节 字长(16进制数字码长) 说明 time_low 4 8 整数:低位 32 bits 时间戳 time_mid 2 4 整数:中间位 16 bits 时间戳 time_hi_and_version 2 4 最高有效位中的 4 bits“版本”(Mxxx),后面是高 12 bits 的时间戳 clock_seq_hi_and_res clock_seq_low 2 4 最高有效位为 1-3 bits“变体”(Nxxx),后跟13-15 bits 时钟序列 node 6 12 48 bits 节点 ID 我们重点关注其中的版本和变体。 变体 variant 变体(variant)字段占位1~3bit,RFC 4122共规定了4种变体。(x代表位置没有意义) 变体 0 (形如0xxx), 用于向后兼容已经过时的1988年开发的 Apollo 网络计算系统(NCS)1...