现在大部分微博、手机邮件提醒等地方都在使用短网址服务
下面是一种原理:
1)26个大写字母 26小写字母,10个数字,随机生成6个然后插入数据库对应一个id,
2)短连接跳转的时候,根据字符串查询到对应id,即可实现相应的跳转
62种字符组合成6位字符,62^6=568亿个组合数量,重复的概率是很小的
短链接的好处
1、内容需要;2、用户友好;3、便于管理。
为什么要这样做的,原因有这样几点:
1)微博限制一条字数为140字,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短网址应运而生了。
2)短网址在项目里可以很好的对开放级URL进行管理。有一部分网址可以会涵盖暴力、广告等信息,这样我们可以通过用户的举报,完全管理这些链接不出现在我们的应用中。因为同样的URL通过加密算法之后,得到的地址是一样的。
3)我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策。
算法模拟
a-zA-Z0-9 这62位取6位组合,可产生62^6=568亿个组合数量,把数字和字符组合做一定的映射,就可以产生唯一的字符串,如第62个组合就是aaaaa9,第63个组合就是aaaaba,再利用洗牌算法,把原字符串打乱后保存,那么对应位置的组合字符串就会是无序的组合。
把长网址存入数据库,取返回的id,找出对应的字符串,例如返回ID为1,那么对应上面的字符串组合就是bbb,同理 ID为2时,字符串组合为bba,依次类推,直至到达62种组合后才会出现重复的可能,所以如果用上面的62个字符,任意取6个字符组合成字符串的话,你的数据存量达到500多亿后才会出现重复的可能。具体参看这里彻底完善新浪微博接口和超短URL算法,算法四可以算作是此算法的一种实现,此算法一般不会重复,但是如果是统计的话,就有很大问题,特别是对域名相关的统计,就比较麻烦了。
/**
* @

最低0.47元/天 解锁文章
600

被折叠的 条评论
为什么被折叠?



