短链接生成算法 连接操作的实现算法

首先,短链接有几个好处,相信大家都知道:1。内容需求;2.方便用户;3.易于管理。那么短链接是如何实现的呢?事实上,大约有三个步骤:1.定义一个URL映射算法,可以将长URL映射成短字符串;2.使用存储(数据库?NoSQL?)来存储完成的映射;3.实现自己的URL映射算法;第三步相对...

首先,短链接有几个好处,相信大家都知道:1。内容需求;2.方便用户;3.易于管理。

那么短链接是如何实现的呢?事实上,大约有三个步骤:

1.定义一个URL映射算法,可以将长URL映射成短字符串;

2.使用存储(数据库?NoSQL?)来存储完成的映射;

3.实现自己的URL映射算法;

第三步相对困难。如何从一个长链接生成一个短链接?这里有三种方法:

首先是常见的实现方法。

我相信你以前学过十进制和二进制,或者十进制和十六进制之间的转换。然后,为了使它更短,我们可以使用62-ary来转码一个数字ID,并将其转换为一个短字符串。

这种方式的缺点是没有办法保证所有的链接都是固定位数长度,在高并发的情况下,如何保证能够快速分发是个问题。

具体实施方法:

文学实现

算法描述:6个字符用于表示短链接。我们在ASCII字符中使用' a'-'z ',' 0'-'5 ',共32个字符为一组。每个字符有32种状态,6个字符可以代表32 ^ 6(1073741824)。那么如何得到这六个字符呢,描述如下:

Md5传入的长URL以获得32位字符串。这个字符串变化很大,是16的32次方,基本保证了唯一性。把这32位分成4份,每份8个字符。这时候概率就变成了16的8次方,也就是4294967296。这个号码碰撞的概率也比较小。关键是后续的处理。我们把这个8位的字符想象成一个十六进制的整数,也就是1 *(0x)。$val),然后以5为一组取0-30位,算出他的整数值,再映射到我们准备的32个字符,最后就可以得到一个6位的短链接地址。

PHP实现如下:

强迫实现

下面的函数使用一种完全随机的方式来生成一个短链接。虽然我们可以通过查询操作确保短链接不被重用,但是...这样真的靠谱吗~ ~

Technorati标签:短链接、短Url、映射、散列

参考资料:

1.微博地址原则分析

2.微博短域名的原理和作用。

3、Yours.org

4、免费的PHP URL缩短脚本

5、PHP短Url算法的实现

6、实现你自己的短网址

7.短URL算法的初步总结

8.短Url的实现

本文来自热恋少女投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/507177.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 04-16
下一篇 04-16

相关推荐

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信