短连接服务设计与盈利思路¶
一、短链是什么¶
把长 URL 映射成短 URL,如 https://t.cn/AbC123。点击后 302 跳转到原 URL。
二、核心设计¶
1. 短码生成¶
- 自增 ID → Base62 编码(0-9a-zA-Z)。
- 长度 6~7 位,可表示几十亿 URL。
- 用雪花算法 / 号段模式发 ID。
2. 存储¶
CREATE TABLE short_link (
code VARCHAR(10) PRIMARY KEY,
long_url VARCHAR(2048),
expire_time DATETIME,
create_time DATETIME
);
3. 查询与跳转¶
- 热点短链放 Redis。
- 访问日志异步写。
4. 防刷与安全¶
- 短链不能遍历(随机码 / 混淆)。
- 防钓鱼:跳转前展示提示。
- 过期时间。
三、技术要点¶
- 高并发:读多写少,Redis 扛。
- 301 vs 302:
- 301 永久重定向:浏览器缓存,统计不到点击。
- 302 临时重定向:每次都到服务器,能统计。 短链服务用 302。
四、盈利思路¶
1. 流量变现¶
- 跳转前插广告 / 落地页。
- 按点击收费。
2. 企业服务¶
- 自定义短链域名(品牌短链)。
- API 调用量收费。
- 数据分析(点击量、地域、设备)。
3. 高级功能¶
- 短链过期时间设置。
- 密码访问。
- 定向投放(按地域跳转不同页面)。
4. 数据价值¶
- 用户点击行为分析。
- 营销效果追踪。
五、架构演进¶
- 初期:单库 + Redis。
- 中期:分库分表(按 code hash)。
- 后期:CDN + 边缘节点。
高频追问
- 为什么用 Base62?6 位能表示 62^6 ≈ 568 亿,足够。
- 为什么用 302?因为要统计点击,301 被浏览器缓存后统计不到。