網上看到一個例子,借鑒修改一下 實現根據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就太明顯 ...