普通短链
活码系统
随机短链
跳转微信小程序
更多
较长url简短化,在线生成短链接系统-j9国际官网
更新时间:2024-7-30 02:37:20 作者:爱短链
短链接系统可以将长 url url 转换为短 url 字符串。短链接的优点是易于传播。适合在一些对字符串长度有要求的场景下使用,比如短信、微博等,比如
设计要求
根据面试要求,需要设计短链接系统,链接长度尽量短,每天产生1亿个网址,服务10年。
首先在线生成短链接,让我们看看短链接的工作原理。
它是如何工作的?
当我在 chrome 上输入短链接时会发生什么?
打开开发者工具,可以看到服务器收到请求后,会将短链接转换为长链接,然后返回浏览器,进行301重定向,请求长链接地址。
另一个问题,如何将长链接转换为短链接?
可以使用一些加密算法吗?显然不行,因为加密后字符串会变长。
哈希算法:
其实我们可以使用哈希算法和哈希表来实现,如下
长链接经过哈希算法后,会生成一个固定长度的哈希值key,即短链接的值,并存入哈希表中。
使用短链接查询长链接时,只需要查询哈希表即可。
以上是常用的哈希算法,至少8位。
我们需要多少个短链接?按照以上要求,每天产生1亿个短链接,运行10年,1亿*365*10=3650亿。
短链接的字符在[0-9,a-z,a-z]之间在线生成短链接,共有62个不同的字符,可以计算出以下数据。
可见,要满足系统要求,短链路的长度至少要7比特。实际上,许多短链接系统也是 7 位长。有兴趣的同学也可以看看米勒定律7±2。
上面的crc32算法至少有8位。但是我们可以截断前 7 位并丢弃最后一个。但是,可能存在哈希冲突的问题。我们可以递归地为长链接拼接一个值,直到不再发现冲突。当然,也可以使用其他的哈希冲突解决方法。
base 62 转换
这是另一种常用的方法,base 62字符由大写字母a-z、小写字母a-z和数字0-9组成,共62位,如下
与 base 64 相比,base 62 仅少了 2 个字符 和 /。大家可以想想为什么我们这里不用base 64。
base 62 与上述哈希算法不同。哈希算法根据长链接计算哈希值,然后保存在哈希表中。而base 62需要为每个长链接生成一个唯一的数字id,如下
那么如何计算 shorturl?因为id是唯一的十进制数,我们只需要把它转成十六进制,就和二进制转十进制一样。
如果有id为11157,则转换过程如下
最终短链接的值为。
总结
本文介绍了两种实现短链接的方法在线生成短链接,分别是hash算法和base 62。
hash算法的特点是具有固定的短链接长度,不需要生成唯一id,可能会发生hash冲突。
base 62转换的特点是长度不固定,取决于id的大小,1000转换后为g8短链接系统可以把比较长的url网址转换成简短的网址字符串,1000亿转换后为1l9zo9o。还需要生成没有哈希冲突问题的唯一数字 id。
以上就是关于《较长url简短化,在线生成短链接系统》的全部内容了,感兴趣的话可以点击右侧直接使用哦!》》j9国际官网-j9九游会真人游戏第一器
相关搜索