0

我正在编写一个应用程序,需要做一些功能类似于 url 缩短网站所做的事情。我将生成 6 个字符(不区分大小写的字母数字)随机字符串,这些字符串将标识其较长版本的链接。这导致 2176782336 种可能性 ((10+26)^6)。在分配这些字符串时,我可以考虑两种方法。

方法1:系统在运行时生成一个随机字符串并检查它在系统中的唯一性,如果它不是唯一的,则再次尝试。最后以某种方式达到一个唯一的字符串。但如果用户可能“不走运”,它可能会产生问题。

方法 2:我生成一些可能值的池,并在需要时立即分配它们,但这将确保几乎立即为用户分配一个唯一的字符串,同时这也可能意味着,我会事先在 crons 中进行大量计算,并且会随着时间的推移而增加。

虽然我已经拥有生成此类值的代码,但对方法的帮助可能会很有见地,因为我期待着高度加速的应用程序体验。我找不到任何这方面的比较研究。

干杯!

4

1 回答 1

1

我在类似情况下所做的是将N值排队,以便我可以立即分配它们,然后当队列的大小低于某个阈值(例如,.2 * N)时,我有一个后台任务将另一个N项目添加到队列中。程序一启动就启动这个后台任务可能是有意义的(而不是N离线生成第一个值然后在启动时加载它们),假设在启动和请求值之间会有一些延迟队列。

于 2013-07-04T21:32:03.857 回答