什么是 UUID?
UUID 在现代软件中无处不在,但它们如何工作以及为什么它们是唯一的?本指南解释了基础知识。
UUID 基础知识
UUID(通用唯一标识符)是一个 128 位的数字,显示为 32 个十六进制数字,用破折号分隔:550e8400-e29b-41d4-a716-446655440000 为什么 UUID 是唯一的?有 2^128(约 340 万亿万亿万亿)个可能的 UUID。随机碰撞在天文学上是不可能的。您可以每秒生成 10 亿个 UUID,持续 85 年,并且仍然只有不到 50% 的机会发生单次碰撞。 这种唯一性允许去中心化的 ID 生成。多个系统可以独立创建 UUID,而无需协调,并且它们几乎肯定不会发生冲突。
UUID vs 自增 ID
自增 ID (1, 2, 3...):简单、小(32/64 位)、可排序、可预测(安全问题)、需要中央数据库。 UUID:大(128 位)、不可预测、去中心化、不可读、全局唯一。 何时使用 UUID:分布式系统、微服务、公共 API(不可猜测的 ID)、离线优先应用程序、多数据库设置。 何时使用自增:简单的单片应用程序、性能至关重要(UUID 更大)、人类可读的 ID 很重要。
常见用途
数据库主键:特别是在分布式数据库中(Cassandra、DynamoDB)。 API 资源 ID:/api/users/550e8400-e29b-41d4-a716-446655440000 不可猜测,更安全。 会话令牌:随机 UUID 是不可预测的会话标识符。 消息/事件跟踪:跟踪分布式系统中的请求。 文件/对象存储:唯一的文件名,无需检查重复。
试用工具
UUID生成器