精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

短 URL 系統(tǒng)是怎么設(shè)計(jì)的?

運(yùn)維 系統(tǒng)運(yùn)維
實(shí)現(xiàn)一個(gè)算法,將長(zhǎng)地址轉(zhuǎn)成短地址。實(shí)現(xiàn)長(zhǎng)和短一一對(duì)應(yīng)。然后再實(shí)現(xiàn)它的逆運(yùn)算,將短地址還能換算回長(zhǎng)地址。

最爛的回答

實(shí)現(xiàn)一個(gè)算法,將長(zhǎng)地址轉(zhuǎn)成短地址。實(shí)現(xiàn)長(zhǎng)和短一一對(duì)應(yīng)。然后再實(shí)現(xiàn)它的逆運(yùn)算,將短地址還能換算回長(zhǎng)地址。

這個(gè)回答看起來挺***的,然后候選人也會(huì)說現(xiàn)在時(shí)間比較短,如果給我時(shí)間我去找這個(gè)算法就解決問題了。但是稍微有點(diǎn)計(jì)算機(jī)或者信息論常識(shí)的人就能發(fā)現(xiàn),這個(gè)算法就跟永動(dòng)機(jī)一樣,是永遠(yuǎn)不可能找到的。即使我們定義短地址是100位。那么它的變化是62的100次方。62=10數(shù)字+26大寫字母+26小寫字母。無論這個(gè)數(shù)多么大,他也不可能大過世界上可能存在的長(zhǎng)地址。所以實(shí)現(xiàn)一一對(duì)應(yīng),本身就是不可能的。

再換一個(gè)說法來反駁,如果真有這么一個(gè)算法和逆運(yùn)算,那么基本上現(xiàn)在的壓縮軟件都可以歇菜了,而世界上所有的信息,都可以壓縮到100個(gè)字符。這~可能嗎。

另一個(gè)很爛的回答

和上面一樣,也找一個(gè)算法,把長(zhǎng)地址轉(zhuǎn)成短地址,但是不存在逆運(yùn)算。我們需要把短對(duì)長(zhǎng)的關(guān)系存到DB中,在通過短查長(zhǎng)時(shí),需要查DB。

怎么說呢,沒有改變本質(zhì),如果真有這么一個(gè)算法,那必然是會(huì)出現(xiàn)碰撞的,也就是多個(gè)長(zhǎng)地址轉(zhuǎn)成了同一個(gè)短地址。因?yàn)槲覀儫o法預(yù)知會(huì)輸入什么樣的長(zhǎng)地址到這個(gè)系統(tǒng)中,所以不可能實(shí)現(xiàn)這樣一個(gè)絕對(duì)不碰撞的hash函數(shù)。

比較爛的回答

那我們用一個(gè)hash算法,我承認(rèn)它會(huì)碰撞,碰撞后我再在后面加1,2,3不就行了。

ok,這樣的話,當(dāng)通過這個(gè)hash算法算出來之后,可能我們會(huì)需要做btree式的大于小于或者like查找到能知道現(xiàn)在應(yīng)該在后面加1,2,或3,這個(gè)也可能由于輸入的長(zhǎng)地址集的不確定性。導(dǎo)致生成短地址時(shí)間的不確定性。同樣爛的回答還有隨機(jī)生成一個(gè)短地址,去查找是否用過,用過就再隨機(jī),如此往復(fù),直到隨機(jī)到一個(gè)沒用過的短地址。

正確的原理

上面是幾種典型的錯(cuò)誤回答,下面咱們直接說正確的原理。

正確的原理就是通過發(fā)號(hào)策略,給每一個(gè)過來的長(zhǎng)地址,發(fā)一個(gè)號(hào)即可,小型系統(tǒng)直接用mysql的自增索引就搞定了。如果是大型應(yīng)用,可以考慮各種分布式key-value系統(tǒng)做發(fā)號(hào)器。不停的自增就行了。***個(gè)使用這個(gè)服務(wù)的人得到的短地址是 http://xx.xx/0 第二個(gè)是 http://xx.xx/1 第11個(gè)是 http://xx.xx/a 第依次往后,相當(dāng)于實(shí)現(xiàn)了一個(gè)62進(jìn)制的自增字段即可。

幾個(gè)子問題

1. 62進(jìn)制如何用數(shù)據(jù)庫或者KV存儲(chǔ)來做?

其實(shí)我們并不需要在存儲(chǔ)中用62進(jìn)制,用10進(jìn)制就好了。比如第10000個(gè)長(zhǎng)地址,我們給它的短地址對(duì)應(yīng)的編號(hào)是9999,我們通過存儲(chǔ)自增拿到9999后,再做一個(gè)10進(jìn)制到62進(jìn)制的轉(zhuǎn)換,轉(zhuǎn)成62進(jìn)制數(shù)即可。這個(gè)10~62進(jìn)制轉(zhuǎn)換,你完全都可以自己實(shí)現(xiàn)。

2. 如何保證同一個(gè)長(zhǎng)地址,每次轉(zhuǎn)出來都是一樣的短地址

上面的發(fā)號(hào)原理中,是不判斷長(zhǎng)地址是否已經(jīng)轉(zhuǎn)過的。也就是說用拿著百度首頁地址來轉(zhuǎn),我給一個(gè)http://xx.xx/abc 過一段時(shí)間你再來轉(zhuǎn),我還會(huì)給你一個(gè) http://xx.xx/xyz。這看起來挺不好的,但是不好在哪里呢?不好在不是一一對(duì)應(yīng),而一長(zhǎng)對(duì)多短。這與我們***主義的基因不符合,那么除此以外還有什么不對(duì)的地方?

有人說它浪費(fèi)空間,這是對(duì)的。同一個(gè)長(zhǎng)地址,產(chǎn)生多條短地址記錄,這明顯是浪費(fèi)空間的。那么我們?nèi)绾伪苊饪臻g浪費(fèi),有人非常迅速的回答我,建立一個(gè)長(zhǎng)對(duì)短的KV存儲(chǔ)即可。嗯,聽起來有理,但是。。。這個(gè)KV存儲(chǔ)本身就是浪費(fèi)大量空間。所以我們是在用空間換空間,而且貌似是在用大空間換小空間。真的劃算嗎?這個(gè)問題要考慮一下。當(dāng)然,也不是沒有辦法解決,我們做不到真正的一一對(duì)應(yīng),那么打個(gè)折扣是不是可以搞定?

這個(gè)問題的答案太多種,各有各招。這個(gè)方案最簡(jiǎn)單的是建立一個(gè)長(zhǎng)對(duì)短的hashtable,這樣相當(dāng)于用空間來換空間,同時(shí)換取一個(gè)設(shè)計(jì)上的優(yōu)雅(真正的一對(duì)一)。實(shí)際情況是有很多性價(jià)比高的打折方案可以用,這個(gè)方案設(shè)計(jì)因人而異了。那我就說一下我的方案吧。

我的方案是:用key-value存儲(chǔ),保存“最近”生成的長(zhǎng)對(duì)短的一個(gè)對(duì)應(yīng)關(guān)系。注意是“最近”,也就是說,我并不保存全量的長(zhǎng)對(duì)短的關(guān)系,而只保存最近的。比如采用一小時(shí)過期的機(jī)制來實(shí)現(xiàn)LRU淘汰。

這樣的話,長(zhǎng)轉(zhuǎn)短的流程變成這樣:

在這個(gè)“最近”表中查看一下,看長(zhǎng)地址有沒有對(duì)應(yīng)的短地址

有就直接返回,并且將這個(gè)key-value對(duì)的過期時(shí)間再延長(zhǎng)成一小時(shí)

如果沒有,就通過發(fā)號(hào)器生成一個(gè)短地址,并且將這個(gè)“最近”表中,過期時(shí)間為1小時(shí)

所以當(dāng)一個(gè)地址被頻繁使用,那么它會(huì)一直在這個(gè)key-value表中,總能返回當(dāng)初生成那個(gè)短地址,不會(huì)出現(xiàn)重復(fù)的問題。如果它使用并不頻繁,那么長(zhǎng)對(duì)短的key會(huì)過期,LRU機(jī)制自動(dòng)就會(huì)淘汰掉它。

當(dāng)然,這不能保證100%的同一個(gè)長(zhǎng)地址一定能轉(zhuǎn)出同一個(gè)短地址,比如你拿一個(gè)生僻的url,每間隔1小時(shí)來轉(zhuǎn)一次,你會(huì)得到不同的短地址。但是這真的有關(guān)系嗎?

3. 如何保證發(fā)號(hào)器的大并發(fā)高可用

上面設(shè)計(jì)看起來有一個(gè)單點(diǎn),那就是發(fā)號(hào)器。如果做成分布式的,那么多節(jié)點(diǎn)要保持同步加1,多點(diǎn)同時(shí)寫入,這個(gè)嘛,以CAP理論看,是不可能真正做到的。其實(shí)這個(gè)問題的解決非常簡(jiǎn)單,我們可以退一步考慮,我們是否可以實(shí)現(xiàn)兩個(gè)發(fā)號(hào)器,一個(gè)發(fā)單號(hào),一個(gè)發(fā)雙號(hào),這樣就變單點(diǎn)為多點(diǎn)了?依次類推,我們可以實(shí)現(xiàn)1000個(gè)邏輯發(fā)號(hào)器,分別發(fā)尾號(hào)為0到999的號(hào)。每發(fā)一個(gè)號(hào),每個(gè)發(fā)號(hào)器加1000,而不是加1。這些發(fā)號(hào)器獨(dú)立工作,互不干擾即可。而且在實(shí)現(xiàn)上,也可以先是邏輯的,真的壓力變大了,再拆分成獨(dú)立的物理機(jī)器單元。1000個(gè)節(jié)點(diǎn),估計(jì)對(duì)人類來說應(yīng)該夠用了。如果你真的還想更多,理論上也是可以的。

4. 具體存儲(chǔ)如何選擇

這個(gè)問題就不展開說了,各有各道,主要考察一下對(duì)存儲(chǔ)的理解。對(duì)緩存原理的理解,和對(duì)市面上DB、Cache系統(tǒng)可用性,并發(fā)能力,一致性等方面的理解。

5. 跳轉(zhuǎn)用301還是302

這也是一個(gè)有意思的話題。首先當(dāng)然考察一個(gè)候選人對(duì)301和302的理解。瀏覽器緩存機(jī)制的理解。然后是考察他的業(yè)務(wù)經(jīng)驗(yàn)。301是***重定向,302是臨時(shí)重定向。短地址一經(jīng)生成就不會(huì)變化,所以用301是符合http語義的。同時(shí)對(duì)服務(wù)器壓力也會(huì)有一定減少。

但是如果使用了301,我們就無法統(tǒng)計(jì)到短地址被點(diǎn)擊的次數(shù)了。而這個(gè)點(diǎn)擊次數(shù)是一個(gè)非常有意思的大數(shù)據(jù)分析數(shù)據(jù)源。能夠分析出的東西非常非常多。所以選擇302雖然會(huì)增加服務(wù)器壓力,但是我想是一個(gè)更好的選擇。

大概就是這樣。

責(zé)任編輯:chenqingxiang 來源: linux.cn
相關(guān)推薦

2024-06-28 09:59:35

2022-09-13 17:45:40

長(zhǎng)網(wǎng)址短鏈系統(tǒng)

2021-06-18 11:17:36

URL數(shù)據(jù)庫MySQL

2024-07-05 09:41:42

2025-09-15 10:05:00

后端URL短鏈

2022-10-09 14:15:42

短鏈設(shè)計(jì)

2025-06-23 08:23:04

2024-11-12 08:13:09

2024-11-19 16:31:23

2017-10-25 14:25:48

程序員Java設(shè)計(jì)

2018-07-17 15:15:33

任務(wù)調(diào)度系統(tǒng)

2019-04-17 09:36:39

日志系統(tǒng)HDFS

2023-11-24 12:27:46

2025-06-04 03:15:00

高并發(fā)短鏈系統(tǒng)

2023-09-02 21:22:36

Airbnb系統(tǒng)

2025-09-28 01:50:00

2019-09-10 09:25:27

分布式系統(tǒng)Elasticsear

2011-05-11 14:50:54

URL

2023-08-10 10:13:35

轉(zhuǎn)轉(zhuǎn)短鏈平臺(tái)

2018-09-10 15:14:27

前端WebURL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一本一道久久a久久精品综合| 午夜免费日韩视频| 五月婷婷六月合| 成人在线观看亚洲| 国产成人免费在线观看不卡| 91精品国产91久久久| 国产一二三四五区| 国产一区二区在线观| 精品久久久久久久久久国产| 一区二区精品免费视频| 黄色av免费观看| 日本在线观看不卡视频| 欧美黑人xxx| 一道本在线观看| 日本在线一区二区三区| 一本大道久久a久久精二百 | 国产女人高潮时对白| 激情文学一区| 日韩有码在线观看| 熟女俱乐部一区二区| 国产一区二区三区亚洲综合| 色婷婷精品大视频在线蜜桃视频| 乱熟女高潮一区二区在线| 裸体xxxx视频在线| 福利91精品一区二区三区| 国产精品av网站| 日本熟妇毛茸茸丰满| 91精品在线观看国产| 亚洲欧美日韩区| 欧美大喷水吹潮合集在线观看| 四虎国产精品成人免费影视| 欧美性生交大片免费| 国产 欧美 日韩 一区| 在线视频91p| 国产日韩欧美麻豆| 免费一区二区三区| 好吊色在线观看| 国产精品一区三区| 国产免费一区视频观看免费| 精品国产午夜福利| 亚洲自啪免费| 性欧美xxxx交| 久久一二三四区| 亚洲国产老妈| 久久黄色av网站| www.4hu95.com四虎| 久久不见久久见中文字幕免费| 亚洲国产高清福利视频| 欧美做受高潮中文字幕| av在线成人| 欧美日高清视频| 欧美伦理片在线观看| 九九热线视频只有这里最精品| 欧美日韩精品二区| 国产免费观看高清视频| 久久www人成免费看片中文| 亚洲精品欧美激情| 91传媒免费视频| 色婷婷av在线| 性欧美大战久久久久久久久| 精品一二三四五区| 韩国日本一区| 午夜不卡av免费| 欧美日韩在线一| 成人福利视频| 91电影在线观看| 538任你躁在线精品免费| 色诱色偷偷久久综合| 欧美理论片在线| 99精品视频国产| 深夜福利一区二区三区| 精品国产青草久久久久福利| 国产女人18毛片水真多18| 久久99精品久久久久久欧洲站| 亚洲精品www久久久| 一女三黑人理论片在线| 国产亚洲精品美女久久久久久久久久| 亚洲深夜福利网站| 福利视频第一页| 午夜精品久久久久99热蜜桃导演| 欧美日本啪啪无遮挡网站| 国产精品7777| 日韩中文字幕1| 国产一区视频在线| 丰满人妻一区二区三区四区53 | 色综合天天综合网天天狠天天| 国产精品亚洲αv天堂无码| 99久久婷婷国产综合精品首页 | 欧美激情极品视频| 91在线看视频| 日本成人中文字幕在线视频| 91香蕉嫩草影院入口| 蜜臀av免费在线观看| 久久午夜色播影院免费高清| 伊人久久大香线蕉午夜av| 污污网站在线看| 日韩欧美中文字幕在线播放| 国产精品视频中文字幕| 亚洲亚洲一区二区三区| 亚洲欧美国产一本综合首页| 性欧美疯狂猛交69hd| 91久久在线| 成人福利网站在线观看11| 黑人精品一区二区三区| 国产精品久久久久四虎| av网站手机在线观看| 97成人超碰| 亚洲成人网在线| 亚洲 欧美 国产 另类| 激情六月综合| 91九色视频在线| 国内三级在线观看| 一区二区高清在线| 国产又黄又猛又粗| 欧美亚洲色图校园春色| 久久视频在线直播| 国产成人自拍偷拍| 99视频有精品| 麻豆映画在线观看| 成人在线视频免费看| 日韩高清免费观看| 欧美成人手机视频| 蜜桃av一区二区在线观看| 久久99精品久久久久久三级 | 国产精品高潮呻吟| 日本wwww视频| 久久大胆人体视频| 久久中文字幕视频| 国产精品成人无码| 久久久亚洲综合| 久久久久99精品成人片| 国产精品一区二区美女视频免费看| 亚洲色无码播放| 特级毛片www| av成人免费在线| 久久综合亚洲精品| 国产美女视频一区二区| 色偷偷亚洲男人天堂| 中文字幕精品视频在线观看| 97国产一区二区| 成人免费性视频| 美女日韩一区| 成年无码av片在线| 一区二区三区精| 国产精品色婷婷久久58| 久草精品在线播放| 日韩三级毛片| 啪一啪鲁一鲁2019在线视频| 天堂av在线免费| 欧美日韩国产丝袜美女| 在线天堂www在线国语对白| 亚洲手机在线| 国产乱码精品一区二区三区卡 | 日产午夜精品一线二线三线| 日本久久久久久久久久久| 五月婷中文字幕| 亚洲成av人片在线| 波多野结衣先锋影音| 亚洲在线日韩| 欧洲亚洲一区| 欧美男男gaygay1069| 久久精品影视伊人网| 亚洲自拍第二页| 亚洲三级免费电影| 四虎国产精品免费| 黄色成人av网站| 国产在线精品一区二区三区》| 国产精品13p| 国产丝袜精品视频| 日本一区二区三区久久| 中文字幕一区二区在线观看| 三级黄色片免费看| 精品动漫3d一区二区三区免费| 好吊色欧美一区二区三区四区| 少妇视频在线观看| 亚洲最新中文字幕| 在线免费av片| 亚洲制服丝袜在线| 波多野结衣a v在线| 另类欧美日韩国产在线| 水蜜桃在线免费观看| 好吊妞视频这里有精品 | 五月天综合激情| 国产丝袜欧美中文另类| 国产探花在线看| 亚洲欧美亚洲| 欧美另类视频在线| 91麻豆精品一二三区在线| 国内精品一区二区三区四区| 国产免费永久在线观看| 91精品欧美福利在线观看| 日韩三级免费看| 国产精品欧美一区喷水| 男人添女人荫蒂国产| 久久精品欧洲| 肉大捧一出免费观看网站在线播放| 日本午夜精品久久久| 国产视频999| 婷婷电影在线观看| 久久视频精品在线| 日本五码在线| 日韩一区和二区| 亚洲精品91天天久久人人| 亚洲免费在线电影| 久久精品视频18| 国产成人免费av在线| 国产精品久久久久9999小说| 亚洲性视频h| 中文字幕人成一区| 久久av免费| 国产青春久久久国产毛片| 亚洲欧美在线人成swag| 清纯唯美日韩制服另类| 一区二区三区伦理| 自拍偷拍亚洲一区| 日韩福利一区二区| 日韩一区二区在线观看视频| 瑟瑟视频在线免费观看| 亚洲成人资源在线| www.99re7| 国产欧美日韩亚州综合 | 成人资源在线| 国产日韩在线视频| 国产综合色区在线观看| 97色在线播放视频| 新版中文在线官网| 久久精品亚洲国产| 77777影视视频在线观看| 日韩黄色高清视频| 天天操天天干天天舔| 日韩午夜精品视频| 中文字幕人妻一区二区在线视频| 黑人巨大精品欧美一区二区免费| 麻豆一区二区三区精品视频| 亚洲精品国产无套在线观| 欧美xxxooo| 中文字幕第一区第二区| 国产真人做爰视频免费| 久久亚洲精精品中文字幕早川悠里| 9.1在线观看免费| 国产一区二区三区视频在线播放| 国产精品自拍视频在线| 蜜桃视频在线观看一区| 免费一区二区三区在线观看| 日韩电影免费一区| 无码内射中文字幕岛国片| 蘑菇福利视频一区播放| 日本熟妇人妻xxxxx| 国产亚洲欧洲| 人妻精品无码一区二区三区| aa国产精品| 日韩精品一区二区三区久久| 国产日韩1区| 青青草原av在线播放| 噜噜噜躁狠狠躁狠狠精品视频| 欧美精品色婷婷五月综合| 翔田千里一区二区| 午夜dv内射一区二区| 美女一区二区久久| 欧美体内she精高潮| 国产成人精品午夜视频免费 | 欧美成年网站| 丁香五月网久久综合| 国产精品对白久久久久粗| 狠狠色综合网站久久久久久久| 欧美一级二级三级视频| 蜜桃狠狠色伊人亚洲综合网站| 九九精品在线| 亚洲一区二区在| 欧美午夜一区| 91av资源网| 美女看a上一区| xxxx国产视频| 91免费在线播放| 后入内射无码人妻一区| 亚洲免费视频中文字幕| 久草视频精品在线| 色8久久精品久久久久久蜜| 伊人网综合在线| 日韩欧美国产一区二区在线播放| 日本美女一级视频| 亚洲欧美在线免费观看| 日本视频在线播放| 久久久久久久久久亚洲| 欧美黑人一区| 91传媒在线免费观看| 亚洲小说图片视频| 国产又大又长又粗又黄| 国一区二区在线观看| av观看免费在线| 国产一区二区在线看| 日本xxxx裸体xxxx| 国产女人18毛片水真多成人如厕| 青青草原在线免费观看| 欧美午夜性色大片在线观看| 国产一区二区三区四区视频 | 91久久国产精品| 日韩高清一级| 伊人狠狠色丁香综合尤物| 亚洲精选久久| 欧美午夜精品理论片| 91免费观看视频在线| 伊人久久久久久久久久久久久久| 亚洲成人自拍网| 国产在成人精品线拍偷自揄拍| 日韩精品久久久久久福利| 精品国产丝袜高跟鞋| 欧洲成人性视频| 日本一区二区三区播放| 亚洲a∨一区二区三区| 亚洲国产精品一区制服丝袜| 亚洲免费999| 国产亚洲人成网站| 国产福利久久久| 欧美一级欧美三级| a√在线中文网新版址在线| 国语自产精品视频在线看一大j8| 日本一区二区三区中文字幕 | 日本少妇一级片| 国产精品视频一二| 国产一级片毛片| 精品1区2区在线观看| av免费在线观看网站| 国产精品人成电影在线观看| 日韩高清成人在线| 99在线免费视频观看| 国产一区二区成人久久免费影院| 亚洲综合欧美综合| 狠狠躁天天躁日日躁欧美| 亚洲欧美另类综合| 欧美xxxx做受欧美.88| 国精品产品一区| 日韩精品在在线一区二区中文 | 在线免费观看视频黄| xnxx国产精品| 好吊操这里只有精品| 欧美精品一区二区三区在线播放| av网站导航在线观看免费| 国产精品热视频| 日韩欧美一区二区三区在线视频| 午夜视频在线瓜伦| 久久久久久亚洲综合影院红桃| 五月婷婷激情网| 亚洲福利视频二区| 国产99re66在线视频| ts人妖另类在线| 欧美日韩91| 乱码一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 中文字幕第22页| 亚洲免费av观看| 精品久久无码中文字幕| 乱亲女秽乱长久久久| 精品国产18久久久久久二百| 女同性恋一区二区| 国产精品996| 免费一级黄色大片| 精品免费视频.| 鲁鲁在线中文| 欧美精品国产精品久久久| 日韩精品一级二级| 超碰人人人人人人人| 在线不卡中文字幕播放| 在线观看午夜av| 精品国产一区二区三区麻豆小说| 亚洲尤物影院| 日本爱爱爱视频| 欧美日韩国产精品成人| а√天堂官网中文在线| 国产精品区一区二区三在线播放| 99亚洲视频| 超薄肉色丝袜一二三| 欧美精选午夜久久久乱码6080| a视频在线播放| 国内精品二区| 日韩成人dvd| 青娱乐在线视频免费观看| 欧美精品一区二区在线观看| 国产精品高清乱码在线观看| 中日韩在线视频| 成人av网站免费观看| 日日夜夜狠狠操| 精品国产网站地址| 国产欧美自拍一区| 亚洲最大综合网| 一区二区三区成人在线视频| 日本一区高清| 国产精品视频yy9099| 欧美三级特黄| 亚洲天堂久久新| 日韩欧美国产小视频| 神马久久资源| 一二三四中文字幕| 2023国产精品自拍| 国产成人三级在线播放| 茄子视频成人在线| 欧美成人一品| 成人在线观看免费高清| 精品成人免费观看| 青草综合视频|