不重复的基本元素,其实是时间。还有一个是数据库表自增ID,这两个元素决定了不会重复。以下几种就是具体实例:
第一种 利用系统GUID由算法自动生成下 理论上能产生全球唯一的值 不过对于用户记订单号不方便
第二种 当前的“时分秒”+随机数1000-9000范围内的数 ,不过大数据并发依然有重复的可能
第三种 利用数据库表自增ID+时间+特征信息+任意等等生成,因为在数据库表中自增ID是唯一的,生成的订单号也就不会重复了
第四种 用64位MD5对用户名和时间加密,再用加密后的签名做订单号。理论上来说该算法是不会重复的,除非订单量超过了2的64次方
第五种 IP地址、时间、计算机机器码、用户名、随机数 时间戳(10)+省id(6)+市id(6)+区id(6)+四位随机数(4)
第六种 有网友用并发性lock解决并发性,就直接在生成订单号的区域块加上lock