面试题|短url系统设计

设计一个短url系统,将长url转化为7字符的短url。功能包括:长url转短url,短url重定向,支持自定义短url和设置过期时间。要求高可用、低时延、安全及RESTful API。主要设计方法包括MD5编码和递增ID编码,考虑了冲突解决和Base62编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

设计短url系统,将长url转换为7字符的短url,并可以根据短url查询原url;
例如:如下page通过短url

https://www.educative.io/collection/page/5668639101419520/5649050225344512/5668600916475904/

可以得到

http://tinyurl.com/jlg8zpc

Use Cases

功能要求:

  1. 给定原始URL,返回短url,长度为7个字符 done
  2. 用户访问 short url,系统重定向到原始URL done
  3. 支持用户自定义short url
  4. short url有默认过期时间,用户也可以指定过期时间

非功能要求:
5. 高可用:一台服务挂掉,仍然可以使用
6. 低时延:URL重定向实时,低时延
7. 安全:short url不可预测
8. 标准化:服务提供REST API

约束

系统MUA以及数据容量预估:

  1. MUA:30M
  2. 数据容量模型:
    • long url : 2KB (2048 characters)
    • short url : 7B (7 characters)
    • created_at: 7B
    • total :2.014KB
  3. 容量预估
    • 60 GB/m
    • 0.7 TB/y
    • 3.5 TB / 5years

API

creatURL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值