社区
数据结构与算法
帖子详情
求一个 唯一码 的生成算法,要求long型
wangyu4882
2003-10-15 06:06:33
...全文
148
7
打赏
收藏
求一个 唯一码 的生成算法,要求long型
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
短歌如风
2003-10-17
打赏
举报
回复
GUID的生成算法很复杂,没有ttmmdd说的那样简单。它保证在有网卡的机器上生成的近乎于唯一,在没有网卡的机器上近乎于本地唯一,重复的机率非常低。不过砍掉一些位后就不保证这一点了,还不如用一个线性同余随机发生器(我给出的就是一个)——在循环一个周期前不会重复。
ttmmdd
2003-10-16
打赏
举报
回复
是GUID吧.
低16位是当前毫米秒钟
高16位年月日.
XOR机器IP
XOR机器CPU ID
...
位数超过的砍掉就行了,
xdspower
2003-10-16
打赏
举报
回复
在加个随机数值在后面不就可以了????
long不够呀?才32位,很容易重复的不过对单机来说,上面的基本上就可以了
wangyu4882
2003-10-16
打赏
举报
回复
那么在同一台机器上,在一毫秒内调用2次,生成的不就相同了么
BlueSky2008
2003-10-15
打赏
举报
回复
http://expert.csdn.net/Expert/topic/2343/2343688.xml?temp=.3560297
短歌如风
2003-10-15
打赏
举报
回复
x = long((unsgined __int64)(unsigned long)x * 32769 + 65535)
x会取遍所有有效long值最后回到初值。
NowCan
2003-10-15
打赏
举报
回复
怎么个唯一法?
【邀请
码
体系设计】邀请
码
生成
方案的落地实现
这篇文章探讨了邀请
码
的
生成
机制,指出邀请
码
生成
与
唯一
ID
生成
的区别,并强调了邀请
码
生成
过程中
唯一
性校验的重要性。文章介绍了一种直观的哈希方法来
生成
邀请
码
,并分析了其潜在的容量限制问题,为了解决这个问题,提出了将哈希值转换为36进制的方法,以及在分布式环境下利用分布式ID
生成
算法
(如雪花
算法
)来优化邀请
码
的
生成
,保证其在分布式系统中的
唯一
性和一致性。
nodejs 雪花
算法
生成
long
型
主键ID 默认16位
之前在写nodejs应用存储使用MySQL的时候,使用了UUID作为主键,然后发现在数据量比较大的情况下,性能会直线下降,而且存储也比较消耗空间,现在重写了ID的
生成
部分,使用雪花
算法
生成
long
型
id. 参考资料: snowflake-id 感谢次代
码
的大佬 新建
一个
SnowflakeID.js 的类 代
码
如下: /** * 雪花 ID
生成
器 * Date: 2020年9月25日14:20:21 * Version: 1.0.0 * A function for converting hex
android
唯一
机器
码
生成
方案_分布式系统
唯一
ID
生成
方案汇总
系统
唯一
ID是我们在设计
一个
系统的时候常常会遇见的问题,也常常为这个问题而纠结。
生成
ID的方法有很多,适应不同的场景、需
求
以及性能
要
求
。所以有些比较复杂的系统会有多个ID
生成
的策略。下面就介绍一些常见的ID
生成
策略。数据库自增长序列或字段最常见的方式。利用数据库,全数据库
唯一
。优点:1)简单,代
码
方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。缺点:1)不同数据库语法和...
用雪花
算法
生成
全局
唯一
序列
通过以上原理,雪花
算法
可以在分布式环境中
生成
大量
唯一
ID,并且保证ID的有序性和
唯一
性。最后,将时间戳、工作节点ID和序列号进行位运算和组合,
生成
最终的
唯一
ID。
生成
ID的过程可以保证在相同毫秒内、相同工作节点和序列号的情况下
生成
的ID是
唯一
的。雪花
算法
是一种分布式
唯一
ID
生成
算法
,通过对时间戳、工作节点ID和序列号进行位运算和组合,
生成
一个
可排序且
唯一
的64位ID。在
算法
中,我们使用
一个
64位的
long
型
变量来表示
生成
的
唯一
ID。
分布式
唯一
主键
生成
解决方案-雪花
算法
(SnowFlake)
SnowFlake
算法
,是Twitter开源的分布式ID
生成
算法
。其核心思想就是使用使用
一个
64为的
Long
类
型
的数据作为全局
唯一
ID。 1、基本原理 我们都知道计算机语言是2进制语言,则计算机存放数字都是存放数字的补
码
。 例如:-1(一般
一个
byte为8位,-1L就是64个1)的补
码
是1111 1111 反
码
是1111 1110 原
码
是1000 0001。 另外在计算中通常把最高位当成是...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章