Pet*_*ter 5 algorithm url-shortener
我已阅读问题和答案如何编写 URL 缩短程序?所有的数学都非常有意义。我的问题是,既然您无论如何都必须返回数据库/数据存储区进行查找,为什么不在字母表中生成一个随机短字符串并将其与完整的 URL 一起存储在数据存储区中,而不是将其转换回数字ID?
在我看来,这节省了在服务器上进行任何数学运算,降低了复杂性,并消除了短 URL 空间的“可步行性”(对于我的用例,这很关键;不得猜测 URL)。如果使用专为键->值查找而设计的 NoSQL 存储,那么从字符串(而不是数字 ID)查找完整 URL 值似乎不存在任何潜在的性能问题。
我想知道我是否遗漏了什么。
随机短串方法违反了缩短函数的双射性。
给定两个 URLa和b以及您的缩短函数f,应该保证:如果a = b那么f(a) = f(b),但是,由于 f 生成随机值,因此违反了双射性。
但是,如果您只是想缩短任何特定的 URL,并且不介意同一 URL 的后续缩短会生成不同的值,那么您上面概述的方法会更有效。