生成短链接

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

URL缩短

快缩短网址:让冗长链接化作指尖轻吟
——suo.run 极简背后的极致工程

一、序章
在信息洪流中,一条 URL 动辄百字,如藤蔓缠绕,既碍眼又碍事。suo.run 以「快」为名,用一行短码替万里长链,让分享回归轻盈。其奥义,不过是一场优雅的映射:长链是诗,短码是韵,数据库便是那本隐形的韵书。

二、诗意映射
1. 键值对
长链 ⇒ 短码,一一对应,存于高可用 KV 存储。
2. 重定向
用户轻触短码,服务端以 301(永久)或 302(临时)挥袖指路,瞬息抵达彼岸。

三、造码之术
1. 自增雪花
全局唯一雪花 ID → Base62 编码 → 4~7 位短码,如「suo.run/a8K」。
优点:顺序递增,零碰撞,可反解。
2. 哈希淬炼
长链取 MD5/SHA-1 前 56 bit → Base62 → 短码。若偶遇碰撞,再缀一截随机盐,直至唯一。
3. 随机漫步
62 字母表随机抽取 6 位,实时查重,碰撞概率 < 1/568 亿,可忽略。

四、极速之旅
用户输入 → 格式校验 → 选码算法 → 原子写入 → 缓存预热 → 短码返身。
全程 < 20 ms,肉眼难辨。

五、架构之美
• 存储:MySQL 主从 + Redis 缓存,读写比 1:100 仍泰然。
• 分片:短码首字母作路由,16 张表水平拆分,亿级数据亦波澜不惊。
• 缓存:Redis 双层缓存(L1 本地 Caffeine,L2 分布式 Redis),命中率 99.6%。
• 安全:HTTPS 全链路、频率限制、Token 白名单,防爆破、防遍历。



六、示例 · 六行足矣

python
ALPHABET = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
def encode(n: int) -> str:
return ALPHABET[n % 62] + encode(n // 62) if n else ''
short = encode(12345) # '3d7'
print(f'https://suo.run/{short}')

输出:https://suo.run/3d7



七、场景绽放
• 社交:微博 140 字,留更多笔墨给思想。
• 营销:一链一参数,A/B 效果实时洞察。
• 电商:短信 70 字内,也能完整讲述一场限时秒杀。

八、尾声
suo.run 不只是一把剪刀,更是一枚时间胶囊——把漫长的网络地址折叠成掌心轻响,让每一次分享,都像风掠过湖面,只留下优雅的涟漪。