'verificationCode_'.str_random (15);

'verificationCode_'.str_random(15); 缓存以这个为键,同一时间段内注册人数多,能保证不重复?有点担心

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
liyu001989

这是一道数学题 :

问:15 位的随机数,10 分钟内冲突的概率是多少。

解:

  1. 每一位可以使大小写字母及数字,26 + 26 + 10 = 62,同一时间产生一个相同字符串的概率是 1 / 62^15 的概率;
  2. 缓存时间是 10 分钟,假设每秒有 100 万并发(够大了吧),会生成 10 * 60 * 10^6 个随机字符串;
  3. 冲突的概率是 10 * 60 * 10^6 / 62^157.8 * 10^-19

如果觉得还可以更好,为什么不考虑一下 30 位的字符串。

另外即便冲突了,数据也不会错乱,用户只需要再次点一下发送按钮。。。

好像还是不够严谨,你可以算算 10 分钟之内生成的所有字符串,任意两个冲突的概率

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!