本人github
UUID(Universally Unique Identifier)是一种用于在分布式系统中唯一标识信息的机制。一个 UUID 是一个 128 位的数字,通常以 32 个十六进制数字表示,并按照 8-4-4-4-12 的模式分组,用连字符分隔,例如 123e4567-e89b-12d3-a456-426655440000
。
特点
-
唯一性:UUID 的设计目标是在全球范围内唯一。虽然理论上存在重复的可能性,但在实际应用中,这种可能性极低,可以忽略不计。
-
无需中央注册机构:生成 UUID 的算法不需要一个中央机构来保证唯一性,因此它们非常适合在分布式系统中生成唯一标识符。
-
不透明:UUID 是不透明的字符串,它不包含有关生成它的计算机或数据的任何信息。
版本
UUID 有多个版本,每个版本都有其特定的生成方法:
- 版本1:基于时间戳和节点(通常是 MAC 地址)生成。
- 版本2:与版本1类似,但增加了 POSIX UID/GID。
- 版本3:基于 MD5 散列算法和命名空间(例如 URL、全域名等)生成。
- 版本4:完全随机生成,有最高的随机性。
- 版本5:基于 SHA-1 散列算法和命名空间生成。
应用场景
- 在分布式系统中唯一标识资源:如数据库记录、文件、网络服务等。
- 追踪对象与事务:如日志文件中标识特定的操作或事件。
- 在软件开发中:用于生成对象、变量、文件的唯一标识符。
UUID 的一个主要优势是它可以在不依赖中央数据库或协调机构的情况下生成唯一标识符。然而,由于其长度和复杂性,UUID 不适合需要频繁人工输入的场景。此外,UUID 的生成和存储需要相对较多的空间。