舒文小说网

舒文小说网>美利坚我的模拟器不对劲免费 > 第二十三章 论道(第3页)

第二十三章 论道(第3页)

“更何况,这种事我们之前的聚会也做过,不是吗?”本嘴角上扬。

人群里响起几声口哨。

陈哲站在原地,目光落在那行字上。

url短连结服务。

简单来说,url短连结服务就是一种將冗长的网址(url)转换为简短地址的工具。当用户点击短连结时,会被自动重定向到原始的长网址。

这东西他见过,用过,但从来没想过怎么设计。

三分钟。

他开始想。

……

最开始想到的是最简单的,一个资料库表,两个栏位,长url和短码。用户提交长url,生成一个隨机字符串,存进去。访问的时候查一下,重定向。

但这样太简单了。隨机字符串碰撞怎么办?重复的url要不要復用同一个短码?访问量大的时候资料库扛得住吗?

过了半分钟,他想到了哈希。把长url用md5或者sha256哈希一下,取前几位作为短码。但哈希衝突怎么办?再加个盐?还是用布隆过滤器先判断一下?

隨后,陈哲想到了缓存。

高频访问的短码可以放redis里,不用每次都查资料库。但缓存失效怎么办?缓存雪崩怎么办?

再接著,他想到了分布式。如果服务做大了,单机扛不住,得用分布式id生成器。雪花算法?还是用资料库自增id然后取模?

一分钟,他想到了更多。

短码过期怎么办?自定义短码怎么支持?统计点击量怎么实现?防攻击怎么搞?

……

三分钟到。

本的拍手声把陈哲从思考里拉出来。

“行,时间到。”本说,“谁先来?”

人群安静了一秒。

“我来吧。”

说话的是汤姆。他往前站了一步,清了清嗓子。

“最简单的设计:一张表,id自增,长url栏位,短码栏位。短码可以用id的62进位表示,0-9a-za-z,一共62个字符。id从100000开始,保证至少六位短码。”

他顿了顿。

“优点是简单,不会衝突。缺点是自增id容易被遍歷,可以加个隨机偏移量。访问量大的时候加缓存,redis存热点数据。如果要做大,分库分表,按短码哈希分片。”

他的语气中充斥著自信,毫无疑问这是个比较优越的答卷。

本点了点头,没评价。

“下一个。”

莱拉站出来。

“我会用哈希。长url做md5,取前六位。如果衝突了,加个盐重新哈希,或者用布穀鸟哈希的思路。优点是短码隨机,不容易被猜。缺点是要处理衝突,性能稍微差点。”

本还是点了点头。

“下一个。”

接下来几个人轮流发言,思路都大同小异——资料库、哈希、缓存、分片。有人提到了用nosql,有人提到了用消息队列做异步统计,有人提到了用cdn加速。

热门小说推荐

天神诀
太一生水天神诀
...
超凡大卫
吃瓜子群众超凡大卫
...

最新标签