请稍侯

网站短连接生成原理

27 February 2016

短连接生成的两种方式

目前我所了解的短链接生成有两种方式

  1. 完全基于压缩算法,这样可以不使用数据库,直接使用压缩解压即可。
  2. 基于数据库存储长短链接直接的对应关系。

第二种方法,需要把长连接对应到一个唯一ID,通过把唯一的ID转化为62位的字符串(26个小写字母,26个大写字母加0-9十个数字), 唯一的ID按照62求余,求余数对应的62进制的字符,再把每个对应的字符链接起来.短链接一般6位,这样就可以表示62的6次方个url,500亿左右。把生成的唯一ID,短连接和长连接存储在nosql或者mysql中。

唯一的ID获取方式有以下几种
  • 长url的crc32
  • 数据量不大的时候可以用mysql数据库自增
  • 也可以用时间戳加随机数,加一些特定的前缀,然后在crc32,获得一个数字,

go实现longurl转化为shorturl git链接