UUID Universally Unique Identifier
每个人都可以创建不与其它人冲突的UUID
让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定
UUID 是由一组32位数的16进制数字所构成,是故 UUID 理论上的总数为1632=2128,
约等于3.4 x 10123。
若每纳秒产生1百万个 UUID,要花100亿年才会将所有 UUID 用完。
https://www.jianshu.com/p/da6dae36c290
npm uuid
npm install uuid
import { v4 as uuidv4 } from 'uuid';
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
js生成UUID
UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来
export function uuid() {
// 正则匹配 x y
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
/* tslint:disable */
const r = (Math.random() * 16) | 0;
/* tslint:disable */
const v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}
- “|”运算符(位或)对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结
- “&”运算符(位与)对两个二进制操作数逐位进行比较
- 0x3
- 0x8
- | 文档 http://c.biancheng.net/view/5469.html
uuid4
61ea0f88-2742-4bd4-8fdd-56aafe0c1c50
uui5
0c84f6d9-89e5-5457-bb4d-be18cdd3c1b7
uui3
8ba581e3-4147-365a-85dd-9c91602766b8
uuid1
6d6ef38f-787b-4505-826a-0e1717103bf4