首页 > 解决方案 > 使用 Laravel 控制器生成 UUID

问题描述

我正在寻找一个自动生成 UUID 的 laravel 系统并找到了这个

Str::uuid()->toString();

我唯一担心的是它是否多次生成相同的,有谁知道它是否这样做?如果是这样,是否有更好的选择只生成一次 UUID?谢谢!

标签: laravel

解决方案


TL;DR:你不太可能发生碰撞。

在内部,Laravel 使用ramsey/uuid包通过Str实用程序类生成 UUID。Ramsey 的包遵循RFC 4122规范,该规范概述了 UUID 的格式和生成规范。

根据维基百科

为了有 50% 的概率至少发生一次碰撞,需要生成的随机版本 4 UUID 的数量是2.71 万亿
……
这个数字相当于每秒生成 10 亿个 UUID 大约 85 年。

除非您进行大规模操作,否则您可以放心地相信生成的 UUID 是唯一的。


推荐阅读