文章阅读短链接服务系统开发

Posted buwuliao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文章阅读短链接服务系统开发相关的知识,希望对你有一定的参考价值。

一、短链接服务系统开发

https://www.javadoop.com/post/url-shortener?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

二、思路说明

文章很棒,不过最重要的是思路,在可实现的思路下,你会发现每一步都不难。
本文目的就是整理思路,然后让自己实现。

1、功能:

长链转短链,短链跳转到长链。

2、如何保证短链唯一:

短链是一个字符串,只需由一个唯一的ID,可以根据某种规则,转换出唯一的字符串即可。所以问题变成了如果找到一个长链对应的唯一ID。
而对于唯一标识,莫过于数据库自增ID了。

这里需区分单表和多表。单表,数据库自增 id 肯定唯一;多库多表,肯定有一全局发号器来生成唯一 id。

3、生成key(短链)的逻辑:进制转换;

文中使用的是62进制转换,因为字符 a-z、A-Z 和 0-9 共 62 个字符,可以用于生成短链。
只需将十进制ID转换为62进制即可。进制转换详情可以参考:除基倒取余法。

4、长链转短链

数据库中查询;

5、优化:增加随机码,防止短链被破译:

5.1 打乱 BASE 字符串
5.2 加随机字符串,如固定在开头或结尾加 2 位随机字符串

算法的安全性保证:两个不一样的数,在固定位置都插入随机位,结果一定不一样。

5.3 其他细节:

  1. 高位为 0 就不再插入,是为了不至于一开始就往高位插入了 1 导致刚开始值就特别大,转换出来需要更长的字符串。
  2. 建议 id 从一个中等模式的大小开始,如 100w,而不是从 1 开始;
  3. 可以增加缓存提升性能。
  4. 数据库大小写注意事项。

三、结束





以上是关于文章阅读短链接服务系统开发的主要内容,如果未能解决你的问题,请参考以下文章

魔众短链接系统 v3.4.0 链接批量删除 内核版本升级

短视频系统开发面临的技术挑战,有压力才有动力

短视频系统开发常用的推荐算法,各有什么优缺点

IM开发基础知识补课:正确理解HTTP短连接中的CookieSession和Token

PHP伪静态与短链接

网络编程---scoket使用,七层协议,三次挥手建连接,四次挥手短链接