.net怎样在最短时间内生成大量唯一 不重复的无规则的乱码(防伪码或订单号)? 30C

如9位唯一不重复的无规则数字乱码:250242847,460010672,753125430 ............
要求:
1,插入到数据库,并且每插入一批数字乱码到数据库都检查与上一批的不重复。
2,性能效率快,插入几百万条乱码到数据库不用1分钟。
哪位大神做过相关的例子啊,有什么好算法解决啊。

0

6个回答

有随机数码随机数码生成软件

0

@weixin_34615687

对网上是有这种软件,但是我想自己开发一个自己用的。

0

写过哈希桶吗?数据库进库前用哈希桶过滤一下

0

前面可以使用时间戳精确到毫秒 后面 random函数 定义一下返回类型 就可以 不会重复(重复几率特别小)

0

我们以前的防伪码做过16位的,其实这种肯定不会重复的,比如你的随机数如果是9位,那出现重复的时候是所有的随机数生成完之后才出现,
所以前期不要判断。另外生成的时候建议使用txt,然后让程序去入库,入库不要采用insert,最好采用sql提供的数据导入。

0

一般往数据库插入数据时,为了保证主键唯一不重复,常用的就是UUID,你可以搜下。UUID它保证对在同一时空中的所有机器都是唯一的,有32位和16位的。关键是大部分软件包和数据库都提供生成UUID的API接口,不用自己去写了。
你说的9位纯数字的码如果随机生成的话,而且要生成几百万条,一定会有重复的,而且重复的概率还挺大,除非你在生成后再加上去重算法,不过这样很低效的。
如果你一定要用数字的话,建议可以使用16位的UUID,然后把十六进制的UUID转化成十进制的数字,但是位数肯定比16位要多。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
不重复订单号生成的方法
第一种        GUID  由算法自动生成下 理论上能产生全球唯一的值   不过对于用户记订单号不方便                     Console.WriteLine(System.Guid.NewGuid());                    Console.ReadKey();                     //生成结果:5322d297-51b4-419...
生成不重复的订单号
根据递增的id主键生成的订单号应该不会重复的
如何生成不重复的订单号
第一种方案:利用Redis的incr函数        由于Redis是单线程的,因此订单号生成也就不会重复,但是Redis有个非常大的缺陷,那就是不太稳定,容易故障。我们可以使用Redis集群来提高安全性,但是还是有可能集群的所有Redis都挂掉了。因此这种方案不太稳定。        第二种方案:使用uuid的hashCode来生成订单编号 package com.internet.or
PHP高并发下生成唯一的不重复的订单id,以及生成不重复的用户token
生成不重复的订单id public function getOrderId($prefix = 'DD') { return $prefix . (strtotime(date('YmdHis', time()))) . substr(microtime(), 2, 6) . sprintf('%03d', rand(0, 999)); }生成app的用户to...
电商订单管理中生成不重复订单号
第一种方案:利用Redis的incr函数        由于Redis是单线程的,因此订单号生成也就不会重复,但是Redis有个非常大的缺陷,那就是不太稳定,容易故障。我们可以使用Redis集群来提高安全性,但是还是有可能集群的所有Redis都挂掉了。因此这种方案不太稳定。        第二种方案:使用uuid的hashCode来生成订单编号 [html] vi
C# 生成唯一订单号
根据GUID+DateTime.Now.Ticks生产唯一订单号。     /// <summary> /// 生成唯一数     /// </summary>     public class UniqueData     {         private static object obj = new object();         private s...
高并发生成唯一订单号
最近开发一套会员系统,涉及到订单号生成,在高并发条前提下,如何生成唯一的订单号值得斟酌,我这里提供一种较为可行的方案: public static String getOrderIdByUUId() { Date date=new Date(); DateFormat format = new SimpleDateFormat("yyyyMMdd");
PHP生成高并发订单号
 根据时间生成订单号 /** * 生成订单号 * @User yaokai * @param int $length * @param string $tab * @return string */ function getOrderNum($length = 6, $tab = '') { $dt = date('YmdHis'); $str = $dt . ...
支付不重复订单号生成
最近的项目中支付的订单号是使用附加项目中的工具做的,是一种带数据库自增形式的订单号,开始测试的时候没有任何问题,但是再高并发的实际应用中还是有不小的问题,只怪自己考虑太少,必须在高并发模式下保证订单号的唯一,我也参考了很多的案例,网上有个网友的回复很是精辟: 如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间一定不同,因此用时间就可以区分各个订单。 如果存在...
自动生成不重复无序化id
这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级工程。
利用时间生成一个永不重复的KEY
利用时间生成一个永不重复的KEY。可以用于数据库主键。
生成大量不重复,不可猜测,固定长度的优惠码
一、需求: 生成大量优惠码,需满足: 长度8位; 不可重复; 不可预测; 数量尽可能多; 二、实现 自增ID, 可预测 数量有限,最多99999999 随机字符, 不能保证不重复 自增ID+随机字符,(0001~9999)+(4位随机字符) 数量有限,最多9999 UUID 长度为32位,不符合 8位的UUID, 32位的UUID,每4位处理变成1位,结果变成8位UUID。...
16位php网站订单号,一般不会重复
 $trade_no=substr(date('Y'),3,1).time().rand(100,999).substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 5, 13), 1))), 9, 2);//生成订单号
javaEE高并发之如何产生唯一不重复订单号
javaEE高并发之如何产生唯一不重复订单号 1.方案一:使用进程ID,线程ID,IP,MAC地址和时间戳进行拼接产生订单号 (1)如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间戳正常不同,因此用时间戳+随机数(或自增数)就可以区分各个订单。 (2)如果存在并发,且订单号是由一个进程中的多个线程产生的,那么只要把线程ID添加到序列号中就可以保证订单号唯一...
高并发生成订单号(二)
银联16位数字订单号永远不重复的生成算法  请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=11、 前提背景相信做过银联支付的都知道,银联的订单号要求商户提供一个不重复的16位数字订单号(不重复指的是对商户本身,不用考虑银联有多个商户会与其他商户的订单号重复)。...
PHP生成一个唯一订单号,年月日这种高大尚的例子
/生成一个订单号 function getOrderNum(){     $order_number = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);     return $order_number; }     简单从内到外解析一下这个订单...
php 生成唯一订单号4种方法
php生成唯一订单号的方法第一种$danhao = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);第二种$danhao = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); ...
Java订单编号生成(安全永不重复)
package com.cdu.utils; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; /**  * 订单编码码生成器,生成32位数字编码,  * @生成规则 1位单号类型+17位时间戳+14位(用户id加密&a...
多服务保证订单号唯一
    以生成订单号为例:多个用户下单时,如果我们只部署了一个服务,那么在订单生成的方法上使用 synchronized 可以保证订单号唯一,但是应用部署在多个服务器上时,用户访问不同服务器上的服务时,synchronized 就不能同步了。换句话说,synchronized 只能保证一个应用中的同步。 多服务下保证订单号唯一  &nbsp...
PHP生成唯一订单号
做商城类项目经常需要生成唯一订单号方法一:return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);方法二: 正在使用。。。return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))),...
生成唯一订单号
生成唯一订单号 商城购买商品下单的时候需要生成尽可能唯一的订单号,由于任何可能性都是可能发生的,所以无法避免重复,但是又需要保证订单安全,那么就要求业务处理时尽可能降低生成订单重复的可能性,下面提供一种生成订单号的方式,如有问题请评论区留言。 // 生成订单号 public static function makeOrderNo(){ $yCode = array
生成不重复订单号-简易且支持高并发版
package com.internet.order;    import java.util.UUID;    public class TestOrder {           public static String getOrderIdByUUId(){         int machineId = 1;//最大支持1-9个集群机器部署         int hashCodev = ...
PHP生成唯一订单号的方法汇总
第一种 return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);  第二种 return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);  第三种   /...
java通过UUID生成16位唯一订单号
import java.util.UUID; public class T { public static String getOrderIdByUUId() { int machineId = 1;//最大支持1-9个集群机器部署 int hashCodeV = UUID.randomUUID().toString().hashC
Java 使用 UUID 生成唯一不重复的订单编号的方法
做生成订单编号的功能。 网友指点了一下可以简单的使用 uuid 来做,但是 uuid 产生的是一个不重复的字符串。用来当做订单编号,显然不太合适。但是我们可以换个底版,来让它变成一组数字。 原理其实很简单,就是借助 java 中 String 类的 hashcode() 方法即可。整个代码实现如下所示: 1 2 3 4 5 6 7...
java生成唯一订单号
/** * 生成唯一订单号 * 规则:四位随机数+"M"+格式化到秒的时间+"R"+六位随机数 */ public static String getBillCode() { Random rd = new Random(); // 创建随机对象 String n = ""; //保存随机数 int rdGet...
js 根据时间生成唯一订单号
一般做唯一编号的时候,可以使用guid或者uuid的包直接生成,但是我希望唯一编号能够反应生成的时间信息,所以就准备使用日期+随机值来构造,代码如下: const tradeNo = function () { const now = new Date() const year = now.getFullYear(); let month = now.getMonth() + 1; ...
php生成唯一id(经测试1亿数据不会重复)
uniqid(rand(1000,9999),true); 具体可参照手册
.net根据用户Id生成唯一6位邀请码,可逆转。
今天要做邀请码这个功能,但是我又懒得修改数据库表结构,然后在网上看了不少博客,然后在php一个博客上面看到了一种写法,然后便根据我的理解改写成了.net的写法。话不多说直接贴代码。 static void Main(string[] args) { int num = 10086; Console.WriteLine(...
PHP自动生成订单代码(不怕并发)
PHP自动生成订单代码(不怕并发)。 日期加时间
全局唯一订单号生成方法(参考snowflake)
全局唯一订单号生成方法(参考snowflake)Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.简介对于一个较大的订购业务场景,我们往往需要能够生成一个全局的唯一的订单号,如何在多个集群,多个节点高效生成唯一订单号?我们参考了Twitte
JAVA 生成不重复订单号 优化版本 订单号格式为yyyymmdd后面自增
博主提供的开源组件 Mybatis-JPA 组件开源地址 https://gitee.com/shuaizai88/jack_mybatis_jpa @Service("orderNumberDubbboServiceImpl") public class OrderNumberDubbboServiceImpl implements OrderNumberDubbboService { ...
Redis生成订单号
    基于SSM+Maven单号生成器: 订单号:业务类型+yyyyMMddHHmmss+ 6位流水号。 业务类型为任意2个英文字母,HHmmss为redis服务器的时间,6位流水号从1开始自增。 KEY1:包名+业务类型+yyyyMMdd,48h过期 KEY2:包名+HHmmss,这里设置KEY2是为了防止宕机后 import java.text.SimpleDateFor...
基于redis的规则流水号生成(二)
上文主要包含的最基础的redis自增生成规则流水号。 但仔细分析会发现有几个问题: 1、流水号规则调整了怎么办?只能去改代码? 2、redis切换了怎么办?数据不迁移或者redis挂了从头生成流水号会导致重复怎么办? 3、redis异常怎么办?   设计方案: 1、建立流水号规则配置表: CREATE TABLE `crl_serial_number_rule` ( `id`...
通过存储过程解决并发生成唯一订单号
DELIMITER $$ USE `roamerbuddy`$$ DROP PROCEDURE IF EXISTS `generate_orderNo`$$ CREATE DEFINER=`root`@`%` PROCEDURE `generate_orderNo`( IN orderNamePre CHAR(4), IN num INT, OUT newOrderNo VARC
redis 生成订单号学习
题目是生成明天的订单号,删除昨天的订单号,在redis操作,订单号暂定规则为年月日接五位数。如2018102200001   当一个订单生成的时候, 去redis去取订单号,去玩后删掉。这个取和删除操作是一个命令发过去的。不能写成两个语句。 参考博客: redis五种结构详解: https://www.cnblogs.com/sdgf/p/6244937.html redis五种结构详...
分布式锁实现生成唯一订单编号
前言 一:发展由来 大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。 当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了。 二:我们为什么需要分布式锁? 在单机时...
PHP生成唯一单号 / 唯一App用户登录token
第1种PHP生成唯一单号的方法 $str = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); echo $str; 注:这种方式是利用当前的时间,加随机机补全的方法生成,当然我们可以把时间精确到秒级 第2种PHP生成唯一单号的方法 $str = date('Ymd').substr(implode(NULL...
php随机生成不重复的订单编号
public static function Order_id(){ static $ORDERSN=array(); $ors=date('ymd').substr(time(),-5).substr(microtime(),2,5); if (isset($ORDERSN[$ors])){ $ORDERSN[$ors]++; }else{ ...
订单编号:日期+4位的不重复数字
public class RandomNumberUtils { /** * 推荐单编号指定格式生成“每日日期+4位数字增长不重复,每天重新开始计数” * * @param recordTimeAndNumber//最新一条推荐单的编号 * @param currentRecordNumber//最新一条推荐单每日的排号 * @retur...