雪花算法(SnowFlake)
什么是雪花算法?
雪花算法:解决id应该怎么生成的问题,帮助我们自动生成id的一种算法。
原理:
生成一个 64 位的long类型的一个id。
- 最高1位符号位,固定为0,代表正数,1代表负数
- 后面41位存储一个毫秒级的时间戳2^41/(1000606024365)= 69.73年
- 后面10位机器标识,最多可以部署2^10=1024台机器
- 最后12位为自增的计数序列号,用于保证同一毫秒时间戳下、同一机器生成的id尽量不重复,最多各异存储2^12=4096个序列
优点:
性能强,每秒可生成百万个不重复 id。
毫秒数在高位,自增序列在低位,整个ID都是趋势递增的
不依赖第三方库或者中间件。
在内存中进行,效率高
缺点
【雪花算法(SnowFlake)】机器时钟回拨时,会导致重复ID生成。
推荐阅读
- 算法4-1.1.7分别给出以下代码段打印的值
- 干货|干货 | Column Generation算法求解VRPTW松弛模型(附java代码)
- 算法|【整数规划算法】列生成(理论分析+Python代码实现)
- 算法|AAAI2021(面向交通流预测的时空融合图神经网络)
- 算法|图神经网络(01)-图与图学习(上)
- 数据结构与算法|数据结构之什么是算法()
- C数据结构|C数据结构(哈夫曼树算法实现与应用)
- matlab的算法分析,MATLAB智能算法30个案例分析(第2版)
- 算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
- 算法相关|B站(李宏毅2020机器学习笔记 3 —— 梯度下降Gradient Descent)