java 根据时间生成唯一id

主要是依据当前系统毫秒数,但若用循环测试,同一毫秒依然会循环很多次,

系统毫秒数是13位,

公司的解决方法是再加5位的自增数,从00001开始,

于是登录淘宝查看,淘宝的id是13位的数字,猜测应该是限制了一毫秒只能注册一个,

毕竟即使这样13位的数字也用不完,1秒最多可产生1000个id

百度 java 生成id

可参考以下文章

http://bucketli.iteye.com/blog/1057894

http://blog.csdn.net/ria2008/article/details/7615663

32位的uuid比较耗费效率和存储空间。

时间: 2024-08-09 23:51:23

java 根据时间生成唯一id的相关文章

C# 根据twitter的snowflake算法生成唯一ID

C# 版算法: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Demo 8 { 9 10 /// <summary> 11 /// 根据twitter的snowflake算法生成唯一ID 12 /// snowflake算法 64 位 13 /// 0---000

php 生成唯一id的几种解决方法

网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 functi

PHP生成唯一ID的三种方法

1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 com_create_guid()是p

PHP生成唯一ID的方法

PHP自带生成唯一id的函数:uniqid() 它是基于当前时间微秒数的 用法如下: echo uniqid(); //13位的字符串 echo uniqid("php_"); //当然你可以加上前缀 echo uniqid("php_", TRUE); //如果第二个参数more_entropy为true则生成23位字符串 但是它生成的标识有可能不是唯一的,所以很多人会: //这是第一种简单的方法,当然用sha1()函数也可以. echo md5(uniqid()

PHP获取时间戳和微秒数以及生成唯一ID

microtime函数 描述:返回当前Unix时间戳和微秒数 语法:mixed microtime( [ bool $get_as_float ] ) //直接输出 echo microtime(); //得到的是 如:0.26672100 1585622985 前面是当前微秒数,后面是正常时间戳,中间以空格分隔开 //如果带有参数(布尔型参数) echo microtime(true); //输出结果:1585623020.7408 刚才的微秒数就会以浮点数的形式表现在原有的时间戳之后 浮点数

python学习之-- 生成唯一ID

以下以2种方法生成唯一ID def uuid_method(): """第一种方法""" import uuid return str(uuid.uuid1()) print(uuid_method()) def time_method(): """第二种方法""" import time, hashlib m = hashlib.md5() m.update(bytes(str(tim

利用Java.util.UUID来生成唯一ID(用来做数据库主键好用)

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得

生成唯一id

有时候在某些业务中需要先生成一个唯一id,然后再进行存储.可以使用一下的方法: 1.借助mysql或者redis这类能够自增的数据库 这种方式可以满足需求但是需要跟数据库有一次额外的操作.对性能有一定的影响 2.毫秒级的时间加上一个随机数. 这种方式不需要借助数据,性能高些,但是随机数可能会重复,所以结果可能不是全局唯一的 3.毫秒级的时间加上进程id 这种方式可以既满足性能,又是唯一的 对于多核的cpu,每个cpu可以同时执行不同的进程,而每个进程有唯一的id,所以时间可能相同,但是进程的id

java uuid 随机生成唯一序列号

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得