北京清大科越Java后端开发工程师 三面
1. 如何设计短链接生成服务?第一步考虑什么?
思路
先抓核心:全局唯一、长度短、高性能、可跳转。第一步必须先定唯一ID生成策略。
回答示例
面试官您好,我第一步会先确定短码的生成规则和全局唯一ID方案。
因为短链接最核心的就是:短、唯一、不重复。
先把ID怎么来、怎么转成短码定下来,后面存储、跳转、高并发才有基础。
2. 短链接映射关系存在哪?
思路
分层存储:缓存扛读,数据库持久化。
回答示例
我会用两层存储:
- Redis:存热点短链接,做跳转,毫秒级响应;
- MySQL:持久化存全量映射关系,做数据兜底。
跳转优先查Redis,不存在再查DB,同时回写到缓存。
3. 如何保证短链接全局唯一?
思路
用全局唯一ID + 进制转换,最稳最简单。
回答示例
用分布式ID(雪花/号段模式)+ 62进制转换。
先生成一个全局唯一的long ID,再把它转成大小写字母+数字的62进制字符串,就是短码。
这样天然全局唯一,不会重复。
4. 高并发访问时,怎么抗流量?
思路
CDN + 缓存 + 限流 + 异步统计。
回答示例
高并发主要做这几点:
- CDN 第一层拦截,静态页面直接返回;
- Redis 集群扛读,跳转不走数据库;
- 接口限流,防止恶意刷量;
- 点击统计异步化,用MQ异步上报,不影响主流程。
5. 短链接过期怎么清理?
思路
过期策略:Redis过期 + 定时任务 + 懒删除。
回答示例
三层过期机制:
- Redis 设置过期时间,自动淘汰;
- 定时任务,定期扫MySQL删除已过期数据;
- 跳转时懒删除,查到已过期直接返回失效并清理。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
【八股真解】精炼最新高频面经 文章被收录于专栏
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏
查看12道真题和解析