网上看到一个例子,借鉴修改一下 实现根据long类型的用户ID生成6位随机邀请码,并且根据邀请码能算出用户ID。代码如下: 上面6位邀请码能表示的最大ID为728999999(“hhhhhh”),729000000(“wqqqqqq”)就要进位了。 上面方法同一个id生成 ...
网上看到一个例子,借鉴修改一下 实现根据long类型的用户ID生成6位随机邀请码,并且根据邀请码能算出用户ID。代码如下: 上面6位邀请码能表示的最大ID为728999999(“hhhhhh”),729000000(“wqqqqqq”)就要进位了。 上面方法同一个id生成 ...
...
短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引 ...
需求描述:根据用户id生成与之对应的唯一邀请码,范围为‘0-9A-Z’。 这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到不小的提升。 错误思路 随机生成一个字符串,再将用户id拼接到字符串后面 ...
今天群里一位朋友抛出一个问题,需要用26个字母和10个数字,组成一个不重复的4位字符,来作为邀请码。既方便客户记忆,又能适应大量的用户。我就做了这个demo 用Redis把begin存储起来,每次用的时候放入方法,拿到邀请码,再自增1,设置回Redis。如此生成的邀请码最多 ...
code ...
需求分析 从业务需求上来看,邀请码有以下几个强制性的要求: 不可重复 唯一确定 这两点要求首先就排除了 hash code 的可能,因为 hash code 是可以发生碰撞的。然后在强制性要求的基础之上,我们还有一些进一步的需求 ...
根据用户id生成与之对应的唯一邀请码,范围为‘0-9A-Z’。这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到不小的提升。 错误思路 随机生成一个字符串,再将用户id拼接到字符串后面,但是这样id就太明显 ...