生成短链接

扫描二维码 上传二维码
选择防红平台类型,避免链接被拦截
选择允许访问的平台类型

自建短链接系统:新浪模式实战指南

在“快缩短网址”——suo.run——的世界里,每一道 URL 都值得被优雅地折叠。我们拒绝平庸的自增数字,也摒弃粗暴的随机碰撞,而是以一场精密的哈希芭蕾,将冗长链路裁成六枚轻盈字符。

一、算法:让哈希起舞
1. 对原始长链做一次 MD5,得 32 位十六进制签名。
2. 将签名均分为 4 段,每段 8 字节。
3. 取一段与 0x3fffffff 按位与,保留低 30 位。
4. 30 位再拆成 6 组 5 位,映射到 62 进制字母表,得 6 位短码。
5. 4 段共生成 4 组候选码,任取其一入库;若冲突,则优雅换下一组。
如此,短码无序、等长、不可枚举,兼顾安全与美感。

二、存储:域名与后缀分治
• base_url:协议 + 域名,独立字段,便于统计与复用。
• suffix_url:路径与参数,真正参与哈希的段落。
• full_url:完整长链,冗余备份。
• shot_code:6 位短码,主键。
• expiration_date:到期即焚,减轻历史包袱。
• total_click_count:热度计数,实时递增。



三、冷热分级:让记忆有温度
• 热数据:近 90 天新增或高频访问的短码,驻留 Redis,LRU 淘汰。
• 温数据:90 天外但仍活跃的短码,栖身 HBase,BlockCache 加速。
• 冷数据:过期或极低频访问,归档至低成本对象存储,随时可召回。

四、分表:让增长无边界
按 shot_code 的数值哈希取模 100,路由至 100 张物理表;单表 10 GB 以内,查询轻盈,扩容平滑。

五、一次跳转的旅程
1. 浏览器键入 suo.run/AbC1d2
2. DNS 解析至边缘节点
3. 节点先探 Redis,未命中则下沉 HBase
4. 拿到长链,301 直达,毫秒级响应



在 suo.run,每一条短链都是一首极简诗:
长句折叠,世界即刻抵达。