在日常的软件开发中,我们常常需要生成唯一的字符串ID。最初,我们选择了使用UUID来实现这一目标,然而,UUID存在重复的可能性,因此我们决定放弃Java学习UUID,并转而采用ULID技术。ULID相比于UUID有着更高的唯一性,每毫秒可以生成1.21e + 24个唯一ULID,并按照字典顺序排序。ULID的编码规范为26个字符,采用Crockford的base32编码,每个字符5位,不区分大小写,不包含特殊字符,具有单调排序顺序,能够正确检测和处理相同毫秒内的情况。ULID使用的时间戳是UNIX时间,以毫秒为单位,可以覆盖时间范围直到公元10889年,其空间也不会耗尽,因为采用了48位整数。