在「快缩短网址」(suo.run)的世界里,一条冗长如银河的 URL 被折叠成一枚轻盈的字符琥珀,只需六枚字符,便可盛放整个宇宙的指向。这背后,是一场静默而优雅的算法芭蕾——哈希、映射、重定向,三步成诗。
一、哈希:把银河压成指纹
我们先将原始长链投入 MD5 的熔炉,128 位二进制如星尘般落定:
https://www.example.com/very/long/url → e99a18c428cb38d5f260853678922e03
这 32 位 16 进制指纹,是长链在数学宇宙里的唯一签名,亦是后续炼金术的基石。
二、映射:六字符的炼金术
1. 分段:将 32 位指纹裁成四段 8 位短句。
2. 取模:以 62 进制字母表(a–z, A–Z, 0–9)为画布,对每段做模 62 运算,得到 4 组数字。
3. 洗牌:用 Fisher-Yates 的轻纱之手打乱顺序,杜绝可预测性,确保每一枚短码都是独一无二的艺术品。
4. 落库:长链、短码、创建时间、访问次数一并写入 MySQL,并以 Redis 为镜,映出热点映射,毫秒级命中。

三、重定向:一次 301 的优雅跃迁
当浏览器轻敲 https://suo.run/abc123,Nginx 先以 Lua 脚本在 Redis 中探针:
• 命中缓存 → 301 直达原链,耗时 < 1 ms;
• 未命中 → 回源 MySQL,再写回 Redis,下一次即飞矢无弦。
整个过程只留一声轻响,用户已抵达彼岸。
四、暗涌与守护
• 冲突:若短码被占用,系统自动回环重算,直至诞生新字符琥珀。
• 性能:Redis 以 LRU 温柔驱逐冷门键,热点短链常驻内存。
• 安全:全站 HTTPS、HSTS、防爆破限速,让每一次折叠与展开都在加密隧道中完成。
五、微光示例
长链:https://www.example.com/page
指纹:1a2b3c4d5e6f…
短码:abc123
当指尖敲下 https://suo.run/abc123,0.1 秒后,你已抵达原址,而那一枚琥珀,仍在数据库里闪着微光,等待下一次被世界拾起。
于是,「快缩短网址」用六字符的极简诗行,替亿万长链写下注脚:
长与短,繁与简,
不过是一场算法的温柔折叠。
