短网址讨论

短链接服务

基本原理

对一个网址做md5生成32位数字,将该32位数字分成4组。
一组8个字节32位,同111…(共30位与运算),忽略超过30位的,得到30位。
对30位均分为6组,每组五位,将这五位所对应的字母或数字取出,六组将会有六个字符串。
如果采取32进制,应该能表示6000w条短网址。当然也可以采用64进制。
最终我们会得到4组字符串,每个字符串六个字符。

  1. 是否可以根据算法还原,如果不能还原就需要对这个映射关系进行存储
  2. 该算法是否能够保证短网址唯一性
todo:自己做一个短网址服务,用redis来做数据库服务器

参考文章

设计短网址服务