UUID的定义
UUID(Universally Unique Identifier)是一种标准化标识符,用于在分布式系统中唯一标识信息。其核心特点是无需中央协调即可生成,且重复概率极低(理论可忽略)。
UUID的组成结构
UUID通常为128位(16字节)的十六进制字符串,格式为8-4-4-4-12的五段组合,例如:
550e8400-e29b-41d4-a716-446655440000其结构包含以下部分:
- 时间戳(60位):部分版本包含生成时间信息。
- 时钟序列(14位):防止时间回退导致的冲突。
- 节点标识(48位):如MAC地址或随机值。
- 版本号(4位):标识UUID的生成算法(如版本1~5)。
- 变体号(2位):指定UUID布局标准(通常为RFC 4122)。
常见版本及生成方式
版本1(基于时间)
结合MAC地址和当前时间戳生成,确保时序唯一性。
版本4(随机数)
122位为随机生成,重复概率约为 $1/2^{122}$,常用且实现简单。
版本3/5(基于命名空间)
通过哈希算法(MD5或SHA-1)将命名空间和名称映射为UUID。
应用场景
- 数据库主键替代自增ID(避免暴露业务信息)。
- 分布式系统追踪请求或会话。
- 文件或资源的唯一标识符。
代码示例(Python生成UUID)
import uuid # 生成版本4的随机UUID uuid4 = uuid.uuid4() print(uuid4) # 输出如:f47ac10b-58cc-4372-a567-0e02b2c3d479UUID的设计兼顾唯一性和效率,适用于需要全局唯一标识的场景。