首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实战-全局唯一邀请功能实现

一套优秀的邀请生成机制不仅确保全局唯一性,还需要考虑到性能等问题。本篇文章带大家探究一下基于Java的邀请生成。...邀请实现 邀请的特性 唯一性:确保每个用户的邀请都是独一无二的,这样系统才能判定谁为邀请者,甚至可以根据邀请进行反向推导。 随机性:不能让用户从邀请上轻易的看出生成的规则。...一般来说生成一个用户的邀请需要一个唯一的输入参数,这里就用用户的ID(长整型数)来作为输入参数,输出结果为6为数字+大写字母。同时,通过邀请可以反推出用户的ID。...同时,根据生成的邀请又可以反推出用户ID(或用户编号)。此种方法简单高效,又确保了根据每个用户ID生成的邀请唯一性。 当然,可以通过打乱BASE数组中字符的顺序让产生的邀请更加随机一些。...但需要保证加盐或调换之后ID的唯一性。 业务扩充 当业务不断发展,如果10亿的邀请依旧无法满足业务需求,则可进行以下方式进行扩充: - 将邀请码位数进行扩充,比如变为7位、8位或更多位。

1.3K21
您找到你想要的搜索结果了吗?
是的
没有找到

唯一识别之UUID入门与实战

上一篇从身份证号是如何生成,来认识了中心机构下生成唯一标识的方法,这一篇来看看面对庞大的计算机世界,无中心机构时,那又如何生成唯一标识呢?...UUID的全称是Universally Unique Identifier,中文为通用唯一识别。...理想情况下,每一台计算机都有唯一的MAC地址,每一台计算机在某一时刻执行一次生成UUID的操作,在全球内肯定是唯一的。...尽管这种病毒不会删除电脑系统文件,但它引发的大量电子邮件会阻塞电子邮件服务器,使之瘫痪,造成了相当大的危害,最终就是这位病毒制造者David L....References [1] Nodejs的uuid:https://www.npmjs.com/package/uuid [2] 维基百科:https://zh.wikipedia.org/wiki/通用标识

3.6K20

通用唯一标识UUID的介绍及使用。

UUID全称:Universally Unique Identifier,即通用唯一识别。...UUID的作用 UUID的是让分布式系统中的所有元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。...UUID的组成 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。...按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID和许多可能的数字。...全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。 UUID的唯一缺陷在于生成的结果串会比较长。

4.7K150

用户ID生成唯一邀请的几种方法

2.需求分析 从业务需求和一般产品邀请的使用体验上来看,邀请有以下几个特点: 不可重复:不用用户 ID 生成的邀请是不同的; 唯一确定:一个用户 ID 只能生成一个邀请; 是否可逆:是否需要通过邀请反推对应的用户...本文将以 Golang 为例,给出根据用户 ID 生成唯一且不重复的邀请的常见方法与实现示例。 3.字符集 首先需要确定组成邀请的字符集,一般采用数字和英文大小写字母共计 62 个字符。...4.方法一:随机数+唯一性判断(不可逆) 使用用户 ID 作为种子初始化随机数发生器,随机生成字符集下标,取出对应的字符拼接成邀请。...降低冲突率的办法是增加邀请的空间,有两个办法: 增加生成邀请的字符空间; 增加邀请的长度。 6.方法三:进制法(可逆) 用户 ID 是唯一的,生成一个唯一的邀请也是理所当然的。...参考文献 趣谈唯一邀请生成方法 简单的密码学生成唯一邀请 记录使用 Golang math/rand 随机数遇到的坑 维基百科.混淆与扩散 CSDN.以模6加法群(Z6,+)认识循环群及其特点

7.7K51

生成唯一随机的方法及优缺点分析

现在的WEB中经常会需要产生一些邀请、激活。需要是唯一并且随机的。下面总结一些常用的产生随机的方法 从网络上采集了一些思路,做一下分析。 1....的字符串(不够位数的左边填0,超过位数直接使用该数字),得到:00000155   3)在每个数字后面随机插入1个字母或其它非数字符号,得到:0A0F0R0Y0H1K5L5M    这样就可以得到1个随机的唯一的邀请了...233   3) 转为字符串,并在后面加’9’字符:2339   4)在后面随机产生若干个随机数字字符:233967524987    转为8进制后就不会出现9这个字符,然后在后面加个’9’,这样就能确定唯一性...DispRepair('getstr',repaircode_length,'fillstr','type') 功能:补齐字符串长度 $gstr:原字符串 $newlen:新字符串长度 $fill:补位字符集,不能出现唯一标识中可能出现的字符...,使用方法:CreateCoupon ("id",code_length,repaircode_length) *功能:生成带唯一标识的伪随机 *$newid:int 唯一标识符 *$newcodelen

1.1K20

mongodb 唯一索引 性能_什么是唯一索引

同时索引的属性可以具有唯一性,即唯一索引。唯一索引用于确保索引字段不存储重复的值,即强制索引字段的唯一性。缺省情况下,MongoDB的_id字段在创建集合的时候会自动创建一个唯一索引。...本文主要描述唯一索引的用法。...对于那些已经存在非唯一的列,在其上面创建唯一索引将失败 不能够基于一个哈希索引指定唯一性 Unique Constraint Across Separate Documents 唯一的约束适用于集合中的单独的文档...也就是说,唯一的索引可以防止不同的文档具有相同的索引键值, 但索引并不能阻止在基于数组或者内嵌文档创建的唯一索引上具有多个相同的值。 在一个具有重复值的单个文档的情况下,重复的值仅插入到该索引一次。...由于唯一约束限制,MongoDB只会允许一个文档缺少索引字段。 对多于一个以上的文档没有索引字段的值或缺少索引字段,索引构建将失败,提示重复键错误。

1K10

mysql 唯一索引_mysql主键和唯一索引的区别

这里我们来看下唯一索引。 之前我们看了主键索引,他是一种特殊的唯一索引,二者的区别是,主键索引不能有空值,但是唯一索引可以有空值。...一:基本使用 1:唯一索引可以是单列,也可以是多列,下面我们来看下创建语句: # 创建单列唯一索引 alter table sc add unique (name); # 创建多列唯一索引 alter...二:唯一索引作用 1:最大的所用就是确保写入数据库的数据是唯一值。...单列唯一值基本上就是主键。 常用的一般都是多列的唯一索引,比如:当前商品,一个用户只能购买一件。我们将用户id及商品id列设置成唯一索引。那么就可以避免一个用户出现重复购买的情况。...2:可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。 3:唯一性约束强制在指定的列上创建一个唯一性索引。

2.7K30

网页服务器HTTP响应状态-HTTP状态

HTTP 状态(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。...网站测试中常遇到类似 404/500 之类的错误页面提示,以下汇总一下相对应的错误含义,便于理解问题之所在: 5xx-服务器错误:服务器由于遇到错误而不能完成该请求。...500-内部服务器错误。 500.12-应用程序正忙于在 Web 服务器上重新启动。 500.13-Web 服务器太忙。 500.15-不允许直接请求 Global.asa。...常见的错误,HTTP 500 :出现 HTTP 500 – 内部服务器错误,通常有两种原因 是服务器错误(这种可能性比较小) 是程序因某种因素导致服务器运行出错 另外,造成 500 错误常见原因还有:...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:网页服务器HTTP响应状态-HTTP状态

6K20

Oracle中唯一约束和唯一索引的区别

除了约束,还有另外一个概念是索引,在TOAD中创建索引的界面如下: 我们可以注意到在唯一性组中有三个选项:不唯一唯一和主键。...那么创建索引时的唯一、主键与创建约束时候的唯一约束和主键约束有什么区别呢?...创建唯一约束与创建唯一索引有所不同: 创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。...创建唯一索引只会创建一个唯一索引,不会创建Constraint。 也就是说其实唯一约束是通过创建唯一索引来实现的。对于前端开发人员来说这两者有什么区别吗?好像没有。都是不能插入重复的值。...在删除时这两者也有一定的区别,删除唯一约束时可以只删除约束而不删除对应的索引,所以对于的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。

1.3K10
领券