把冗长化作轻盈,把纷繁凝成一句——这是「快缩短网址」suo.run 的初心。
在浩瀚的 URL 宇宙中,我们为你点亮一条仅四字符的捷径,让每一次分享都优雅得恰到好处。

一、算法之舞:从混沌到秩序
1. 取原始长链,先以 Base64 为其披上轻纱,再交由 MD5 施以 32 位符咒。
2. 将 32 位密文切作四段,每段 8 字符,按 62 进制取余,映射至字母与数字的交响——a-z、A-Z、0-9。
3. 四枚音符即成四字符短码,既短至极致,又足够容纳 14 亿种可能,冲突概率低至尘埃。
二、缓存之翼:Redis 的低吟
• 短码为 Key,长链为 Value,常驻内存,毫秒即达。
• 集群横向扩展,永不掉线;TTL 可选,随用随焚。
• 原子自增计数器,实时统计点击,数据洞见尽收眼底。

三、代码如诗:核心片段
public static String compress(String longUrl) {
String base64 = Base64.getUrlEncoder().encodeToString(longUrl.getBytes(StandardCharsets.UTF_8));
String md5 = md5Hex(base64);
StringBuilder code = new StringBuilder();
for (int i = 0; i < 4; i++) {
long part = Long.parseLong(md5.substring(i<em>8, (i+1)</em>8), 16);
code.append(ALPHABET[(int)(part % ALPHABET.length)]);
}
return code.toString();
}
四字符短码,如「suo.run/15uOVS」,一触即达。
四、Spring 之韵:配置即艺术
spring:
redis:
host: 192.168.124.20
port: 6379
timeout: 300ms
lettuce:
pool:
max-active: 64
max-idle: 8
Lettuce 异步非阻塞,吞吐如瀑;Jackson 序列化,优雅且安全。
五、服务之翼:RESTful 轻启
@RestController
@RequestMapping("/")
public class ShortController {
@Autowired
private UrlService urlService;
@GetMapping("/{code}")
public void jump(@PathVariable String code,
HttpServletResponse resp) throws IOException {
String longUrl = urlService.resolve(code);
resp.sendRedirect(longUrl);
}
}
零配置路由,通配「/」,短码即路径,直达彼岸。
六、体验之门:即刻启程
浏览器输入 suo.run,粘贴长链,弹指之间,四字符短链跃然屏上。
分享、嵌入、打印,皆成风景;点击、追踪、统计,一目了然。
「快缩短网址」suo.run —— 让链接,短得恰好,长得永恒。