经常要在社区/文章里塞长链接,又臭又长。今天教大家用 Go + Redis + MySQL 搭一个自带统计的短链系统,源码量不大,新手也能跟下来。

一、整体架构
如上图:用户访问短码 → Nginx 转发给短链服务 → 服务查 Redis 做计数/限流、查 MySQL 拿原始长链 → 命中则 302 跳转,未命中返回 404。
二、核心建表
CREATE TABLE short_url ( code VARCHAR(8) PRIMARY KEY, url TEXT NOT NULL, created_at BIGINT );
三、短码生成(发号器思路)
func genCode(id int64) string { return base62Encode(id) }
四、Nginx 反代
location /s/ { proxy_pass http://127.0.0.1:8080/; }
搭完接个短域名就能用。想加「访问统计大盘」的,评论区扣 1,下期补图文。
Redis 持久化那块能再展开讲讲吗?怕重启丢数据。
教程一步步跟着做下来很顺,架构图也清楚。
源码分享是学习的好途径,感谢作者!
代码质量很重要,大家要注意哦!
这篇文章的技术分享很实用,我学到了很多。