1
kayseen OP 比如年前的支付宝的福卡,每张卡都有一个大概 8 位长度的编码,且保证编码唯一,组合的可能性肯定超过需要的数量,但是对于重复性的处理是咋搞的啊
|
2
shintendo 2020-02-25 17:08:19 +08:00
参考 uuid 原理
|
3
Varobjs 2020-02-25 17:27:26 +08:00 via Android
13 位时间戳,map 映射定义好的字母表,➕几个随机字母数字
|
4
lxml 2020-02-25 17:30:21 +08:00
mini 版 雪花算法啊
|
5
janxin 2020-02-25 17:31:22 +08:00
搜索关键词“分布式 唯一 ID”
|
6
littlewing 2020-02-25 17:32:59 +08:00
分布式唯一 ID 生成器
|
7
loginbygoogle 2020-02-25 18:39:28 +08:00 via iPhone
多此一举
|
8
mostkia 2020-02-25 19:14:08 +08:00
我生成唯一 id 的算法是一般都是 MD5 (时间戳+盐)
虽然依旧有极小概率会出现重复,但我感觉我的一生里应该不会碰到一次,所以没必要太过纠结 |
9
formatex 2020-02-25 21:27:19 +08:00 via Android
不要求随机性的话这样:
0000 0001 .... aaaa aaab aaac |
10
hihipp 2020-02-25 23:28:42 +08:00
时间戳 + 用户标识,用 16 位 MD5 摘要算法。
|
11
cmdOptionKana 2020-02-26 00:11:17 +08:00
|
12
RedisMasterNode 2020-02-26 00:30:13 +08:00
|
13
xuanbg 2020-02-26 07:19:45 +08:00
|
14
melkor 2020-02-26 08:38:56 +08:00 via iPhone
@xuanbg 时间戳加序列号加随机数,碰撞概率足够低即可。真的遇上碰撞就重试。先查表没用,并发问题一样有。
|
15
BlackBerry999 2020-02-26 09:41:29 +08:00
雪花算法生成 ID 靠谱一点
|
16
vevlins 2020-02-26 09:56:28 +08:00
自荐一下文章:分布式唯一 ID https://juejin.im/post/5e43b22251882549361e4be4,不过如果单表就是脱裤子放屁了,设置 unique + 随便一个随机算法成本最小。
|
17
ps1aniuge 2020-02-26 13:41:06 +08:00
使用 [使用保存 mysql 时设置 unique]即可呀。设置 unique + 随便一个随机算法成本最小。
楼上正解。 |
18
zunceng 2020-02-26 13:45:36 +08:00
snowflake + base58
|
20
xpdoh 2020-02-28 16:53:18 +08:00
base36,时间戳 x7//2020 年起约 120 年,间隔 50 毫秒,随机码 x9//约 10^15 种可能,共 16 位
这是我的方案,又短又不会冲突,能用 120 年,就是这么自信 |