赞
踩
场景
短链接服务就是将一段长的URL转换为短的URL,比如利用新浪微博的短链接生成器,可将一段长的URL(http://blog.csdn.net/poem_qianmo/article/details/52344732)转换为一段短的URL(http://t.cn/RtFFvic),用户通过访问短链接即可重定向到原始的URL。
整个交互流程如下:
设计要点
短链接生成算法
(1)利用放号器,初始值为0,对于每一个短链接生成请求,都递增放号器的值,再将此值转换为62进制(a-zA-Z0-9),比如第一次请求时放号器的值为0,对应62进制为a,第二次请求时放号器的值为1,对应62进制为b,第10001次请求时放号器的值为10000,对应62进制为sBc。
(2)将短链接服务器域名与放号器的62进制值进行字符串连接,即为短链接的URL,比如:t.cn/sBc。
重定向过程
生成短链接之后,需要存储短链接到长链接的映射关系,即sBc -> URL,浏览器访问短链接服务器时,根据URL Path取到原始的链接,然后进行302重定向。映射关系可使用K-V存储,比如Redis或Memcache。
优化方案
算法优化
采用以上算法,对于同一个原始URL,每次生成的短链接是不同的,这样就会浪费存储空间,因为需要存储多个短链接到同一个URL的映射,如果能将相同的URL映射成同一个短链接,这样就可以节省存储空间了。
(1)方案1:查表
每次生成短链接时,先
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。