查看原文
其他

长 URL 转短连接的简单设计与实现

2017-03-20 悠悠然然 开源中国


非常多的时候,我们不想在分享的时候采用长长的链接,主要的原因有:

● URL太长占显示空间、难于输入,转成二维码点点小,难于识别


● 长的URL提供的信息太多,不利于信息安全,甚至容易造成倒库


● 其他理由......


今天的理由不是重点,重点是如何用一点点代码实现这个短链接的生成。


我们的注意点有:

● 生成的短链接地址长度可调整,毕竟不能因为4位、5位、6位的长度变化就让我们重新写一套程序


● 要有防冲突处理机制,不能因为算法导致两个长链接地址生成的短地址一样就把前一个覆盖掉


● 有时候,一个地址用过之后觉得不需要使用了,哪么这个地址失效之后,短地址可以有效收回。


首先设计接口



只是个示例,注释比较简陋,接下来是抽象类实现,把公共的内容放这里


实际的需要在数据库层实现,这里在内存里面存储的实现一个意思一下



弄点测试代码,试试看效果怎么样



这里是运行结果



感觉还可以,当然里面还有一些不完善的地方

● 当产生的数量达到一定程度的时候,再获取时由于冲突比较大,导致性能会降低


● 因此如果是小型系统,建议采用4个长度,大型系统建议采用6个长度


● 现在还没有多长时间之后自动失效的API,建议添加


● 需要实现支持序列化的方案


● 现在没有同步处理,实际实现中需要考虑


这个只是花几分钟展示一个思路,并没有经过系统的思考的验证,正式系统请慎重使用。




推荐阅读

3 月值得关注的 15 个 JavaScript 和 CSS 库

开发者福音,13 个最佳 JavaScript 数据网格库推荐

阿里宣布 Atlas 开源;Win10 被喷是一个广告平台;回归 Windows 不是技术原因?

点击“阅读原文”查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存