<optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

    <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
  1. 
    
  2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

  3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

        1. <listing id="r9hwm"></listing>
          <delect id="r9hwm"></delect>
          <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>

          在線生成簡短url

          1.短URL 系統是怎么設計的

          最爛的回答 實現一個算法,將長地址轉成短地址。

          實現長和短一一對應。然后再實現它的逆運算,將短地址還能換算回長地址。

          這個回答看起來挺完美的,然后候選人也會說現在時間比較短,如果給我時間我去找這個算法就解決問題了。但是稍微有點計算機或者信息論常識的人就能發現,這個算法就跟永動機一樣,是永遠不可能找到的。

          即使我們定義短地址是100位。那么它的變化是62的100次方。

          62=10數字+26大寫字母+26小寫字母。無論這個數多么大,他也不可能大過世界上可能存在的長地址。

          所以實現一一對應,本身就是不可能的。 再換一個說法來反駁,如果真有這么一個算法和逆運算,那么基本上現在的壓縮軟件都可以歇菜了,而世界上所有的信息,都可以壓縮到100個字符。

          這~可能嗎。 另一個很爛的回答 和上面一樣,也找一個算法,把長地址轉成短地址,但是不存在逆運算。

          我們需要把短對長的關系存到DB中,在通過短查長時,需要查DB。 怎么說呢,沒有改變本質,如果真有這么一個算法,那必然是會出現碰撞的,也就是多個長地址轉成了同一個短地址。

          因為我們無法預知會輸入什么樣的長地址到這個系統中,所以不可能實現這樣一個絕對不碰撞的hash函數。 比較爛的回答 那我們用一個hash算法,我承認它會碰撞,碰撞后我再在后面加1,2,3不就行了。

          ok,這樣的話,當通過這個hash算法算出來之后,可能我們會需要做btree式的大于小于或者like查找到能知道現在應該在后面加1,2,或 3,這個也可能由于輸入的長地址集的不確定性。導致生成短地址時間的不確定性。

          同樣爛的回答還有隨機生成一個短地址,去查找是否用過,用過就再隨機,如此往復,直到隨機到一個沒用過的短地址。 正確的原理 上面是幾種典型的錯誤回答,下面咱們直接說正確的原理。

          正確的原理就是通過發號策略,給每一個過來的長地址,發一個號即可,小型系統直接用mysql的自增索引就搞定了。如果是大型應用,可以考慮各種分布式key-value系統做發號器。

          不停的自增就行了。第一個使用這個服務的人得到的短地址是 **0 第二個是 **1 第11個是 **a 第依次往后,相當于實現了一個62進制的自增字段即可。

          幾個子問題 1. 62進制如何用數據庫或者KV存儲來做? 其實我們并不需要在存儲中用62進制,用10進制就好了。比如第10000個長地址,我們給它的短地址對應的編號是9999,我們通過存儲自增拿到9999后,再做一個10進制到62進制的轉換,轉成62進制數即可。

          這個10~62進制轉換,你完全都可以自己實現。 2. 如何保證同一個長地址,每次轉出來都是一樣的短地址 上面的發號原理中,是不判斷長地址是否已經轉過的。

          也就是說用拿著百度首頁地址來轉,我給一個**abc 過一段時間你再來轉,我還會給你一個 **xyz。這看起來挺不好的,但是不好在哪里呢?不好在不是一一對應,而一長對多短。

          這與我們完美主義的基因不符合,那么除此以外還有什么不對的地方? 有人說它浪費空間,這是對的。同一個長地址,產生多條短地址記錄,這明顯是浪費空間的。

          那么我們如何避免空間浪費,有人非常迅速的回答我,建立一個長對短的KV存儲即可。嗯,聽起來有理,但是。

          這個KV存儲本身就是浪費大量空間。所以我們是在用空間換空間,而且貌似是在用大空間換小空間。

          真的劃算嗎?這個問題要考慮一下。當然,也不是沒有辦法解決,我們做不到真正的一一對應,那么打個折扣是不是可以搞定? 這個問題的答案太多種,各有各招。

          這個方案最簡單的是建立一個長對短的hashtable,這樣相當于用空間來換空間,同時換取一個設計上的優雅(真正的一對一)。實際情況是有很多性價比高的打折方案可以用,這個方案設計因人而異了。

          那我就說一下我的方案吧。 我的方案是:用key-value存儲,保存“最近”生成的長對短的一個對應關系。

          注意是“最近”,也就是說,我并不保存全量的長對短的關系,而只保存最近的。比如采用一小時過期的機制來實現LRU淘汰。

          這樣的話,長轉短的流程變成這樣: 在這個“最近”表中查看一下,看長地址有沒有對應的短地址 有就直接返回,并且將這個key-value對的過期時間再延長成一小時 如果沒有,就通過發號器生成一個短地址,并且將這個“最近”表中,過期時間為1小時 所以當一個地址被頻繁使用,那么它會一直在這個key-value表中,總能返回當初生成那個短地址,不會出現重復的問題。如果它使用并不頻繁,那么長對短的key會過期,LRU機制自動就會淘汰掉它。

          當然,這不能保證100%的同一個長地址一定能轉出同一個短地址,比如你拿一個生僻的url,每間隔1小時來轉一次,你會得到不同的短地址。但是這真的有關系嗎? 3. 如何保證發號器的大并發高可用 上面設計看起來有一個單點,那就是發號器。

          如果做成分布式的,那么多節點要保持同步加1,多點同時寫入,這個嘛,以CAP理論看,是不可能真正做到的。其實這個問題的解決非常簡單,我們可以退一步考慮,我們是否可以實現兩個發號器,一個發單號,一個發雙號,這樣就變單點為多點了?依次類推,我們可以實現1000個邏輯發號器,分別發尾號為0到。

          在線生成簡短url

          轉載請注明出處華閱文章網 » 在線生成簡短url

          短句

          夸別人的話夸張簡短

          閱讀(350)

          本文主要為您介紹夸別人的話夸張簡短,內容包括求夸人的話,越夸張越好最好是自創的,夸人的語句越夸張越好,夸人的句子,越夸張越好。最富有才華,英俊瀟灑。玉樹臨風。風流倜儻。高大威猛。人稱:山崩地裂,水倒流,鬼見愁,美貌與智慧結合,英雄與俠義化

          短句

          孫思邈的簡短故事

          閱讀(509)

          本文主要為您介紹孫思邈的簡短故事,內容包括孫思邈救人故事42字孫思邈的救人故事,簡短24字,孫思邈著名故事概括起來,孫思邈簡要經歷,快快快。藥王孫思邈,隋唐時人。有《千金方》傳世。民間流傳的關于他的神奇故事不勝枚舉。有一天,孫思邈到遠

          短句

          外灘導游詞英文簡短

          閱讀(309)

          本文主要為您介紹外灘導游詞英文簡短,內容包括求助:上海外灘、東方明珠等景點的英語導游詞或景點介紹,謝謝啊,寫一篇導游詞簡要介紹一下上海英語作文,急簡單的介紹風景英文導游詞。The Oriental Pearl Tower (東方明珠塔) is a TV tower Shang

          短句

          隸書介紹簡短的

          閱讀(524)

          本文主要為您介紹隸書介紹簡短的,內容包括隸書的介紹,50字哦~要少點的,詳細點的哦~~~~~~~~~~,幫我介紹一下隸書,具體些,隸書字典的介紹。要了解隸書,得先明白隸書的來源. 隸書基本是由篆書演化來的,主要將篆書圓轉的筆劃改為方折,書寫速度更快

          短句

          簡短立體人物手工折紙制作

          閱讀(468)

          本文主要為您介紹簡短立體人物手工折紙制作,內容包括立體手工人形制作,用10張折紙可以做哪些手工,看起來復雜,折起來卻簡單一點點的手工折紙,不要立體,急補充:要。步驟是: 首先準備12張紙條(長寬比為22:1),如果是初學者,最好選用不同顏色的紙條來

          短句

          花觀察日記簡短

          閱讀(352)

          本文主要為您介紹花觀察日記簡短,內容包括植物觀察日記三則越簡單越好,花的觀察日記,植物生長觀察日記。8月1日 我是一顆綠豆種子,今天早上主人把我擺放在杯子里,然后往我身上放一厘米厚的土,接著澆水,把我和杯子放在露臺的向光處。 晚上的時

          短句

          描寫雪的簡短詩歌

          閱讀(291)

          本文主要為您介紹描寫雪的簡短詩歌,內容包括推薦幾首關于雪短詩歌,關于雪的現代詩句要短,關于雪的短篇散文。1.草枯鷹眼疾,雪盡馬蹄輕。(王維《觀獵》) 2.欲將輕騎逐,大雪滿弓刀。(盧綸《塞下曲》) 3.遙知不是雪,為有暗香來。(王安石《梅花

          短句

          有關蔬菜的簡短故事

          閱讀(312)

          本文主要為您介紹有關蔬菜的簡短故事,內容包括關于蔬菜的童話,編一個關于蔬菜知識的童話故事,可以說是南瓜或者桃花那樣子的蔬,大家好,我是幼兒園大班的一名教師,這次的故事主題要講關于蔬菜的。一天胡蘿卜對西紅柿說:“喂!西紅柿,你知道嗎?漢

          短句

          微博名簡短好聽

          閱讀(312)

          本文主要為您介紹微博名簡短好聽,內容包括微博取個什么名稱好啊,男生微博昵稱簡短好聽,簡單的微博昵稱英文。微博取名最好結合自己的實際情況 如果你是名人,要用自己真實的姓名來進行宣傳,那當然最簡單啦,直接用自己的名字就可以。 但如果普通

          短句

          尾牙簡短致辭

          閱讀(322)

          本文主要為您介紹尾牙簡短致辭,內容包括什么是尾牙,簡單的說說,謝謝,年末會餐簡短講話,年會發言稿簡短。尾牙是閩南地區的漢族傳統節日,商家一年活動的“尾聲”,也是普通百姓春節活動的“先聲”。每月的初二、十六,是閩南商人祭拜土地公神的日

          短句

          崗位調動感言簡短

          閱讀(330)

          本文主要為您介紹崗位調動感言簡短,內容包括怎樣寫領導調離原工作崗位感言,公司內部崗位調動,該怎樣寫一個簡單明了的理由給領導,工作調動感言。怎樣寫領導調離原工作崗位感言,解決辦法:1. 十分榮幸在某領導麾下工作過,非常感謝領導對我工作中

          短句

          畢業同學簡短錄留言

          閱讀(285)

          本文主要為您介紹畢業同學簡短錄留言,內容包括初中畢業同學錄贈言,同學錄留言大全要大氣簡單,畢業同學錄贈言。1.不管未來有多遙遠,成長的路上有你有我; 不管相逢在什么時候,我們是永遠的朋友。 2.不管未來有多長久,請珍惜相聚的每一刻; 不管多

          短句

          關于服務的簡短口號

          閱讀(275)

          本文主要為您介紹關于服務的簡短口號,內容包括服務理念口號大全,服務宗旨口號大全,服務理念口號大全。服務只有更好,沒有最好;滿意只有起點,沒有終點。 2、充分理解客人的需求、過錯、抱怨、投訴。 3、微笑是最具振撼力的語言,是人與人之間溝

          短句

          關于情商重要性的簡短小故事

          閱讀(307)

          本文主要為您介紹關于情商重要性的簡短小故事,內容包括求富有哲理的情商小故事,求兩個關于高情商的小故事要優質的謝謝,有關于“情商比智商重要”的論點論據。面對生命的態度 有位太太請了個油漆匠到家里粉刷墻壁。 油漆匠一走進門,看到她的

          短句

          夸別人的話夸張簡短

          閱讀(350)

          本文主要為您介紹夸別人的話夸張簡短,內容包括求夸人的話,越夸張越好最好是自創的,夸人的語句越夸張越好,夸人的句子,越夸張越好。最富有才華,英俊瀟灑。玉樹臨風。風流倜儻。高大威猛。人稱:山崩地裂,水倒流,鬼見愁,美貌與智慧結合,英雄與俠義化

          短句

          孫思邈的簡短故事

          閱讀(509)

          本文主要為您介紹孫思邈的簡短故事,內容包括孫思邈救人故事42字孫思邈的救人故事,簡短24字,孫思邈著名故事概括起來,孫思邈簡要經歷,快快快。藥王孫思邈,隋唐時人。有《千金方》傳世。民間流傳的關于他的神奇故事不勝枚舉。有一天,孫思邈到遠

          短句

          外灘導游詞英文簡短

          閱讀(309)

          本文主要為您介紹外灘導游詞英文簡短,內容包括求助:上海外灘、東方明珠等景點的英語導游詞或景點介紹,謝謝啊,寫一篇導游詞簡要介紹一下上海英語作文,急簡單的介紹風景英文導游詞。The Oriental Pearl Tower (東方明珠塔) is a TV tower Shang

          短句

          隸書介紹簡短的

          閱讀(524)

          本文主要為您介紹隸書介紹簡短的,內容包括隸書的介紹,50字哦~要少點的,詳細點的哦~~~~~~~~~~,幫我介紹一下隸書,具體些,隸書字典的介紹。要了解隸書,得先明白隸書的來源. 隸書基本是由篆書演化來的,主要將篆書圓轉的筆劃改為方折,書寫速度更快

          短句

          簡短立體人物手工折紙制作

          閱讀(468)

          本文主要為您介紹簡短立體人物手工折紙制作,內容包括立體手工人形制作,用10張折紙可以做哪些手工,看起來復雜,折起來卻簡單一點點的手工折紙,不要立體,急補充:要。步驟是: 首先準備12張紙條(長寬比為22:1),如果是初學者,最好選用不同顏色的紙條來

          短句

          花觀察日記簡短

          閱讀(352)

          本文主要為您介紹花觀察日記簡短,內容包括植物觀察日記三則越簡單越好,花的觀察日記,植物生長觀察日記。8月1日 我是一顆綠豆種子,今天早上主人把我擺放在杯子里,然后往我身上放一厘米厚的土,接著澆水,把我和杯子放在露臺的向光處。 晚上的時

          短句

          描寫雪的簡短詩歌

          閱讀(291)

          本文主要為您介紹描寫雪的簡短詩歌,內容包括推薦幾首關于雪短詩歌,關于雪的現代詩句要短,關于雪的短篇散文。1.草枯鷹眼疾,雪盡馬蹄輕。(王維《觀獵》) 2.欲將輕騎逐,大雪滿弓刀。(盧綸《塞下曲》) 3.遙知不是雪,為有暗香來。(王安石《梅花

          短句

          簡短又經典的句子

          閱讀(302)

          本文主要為您介紹簡短又經典的句子,內容包括短一些的·50個好句子,經典的說說句子,誰能告訴我一些短小的經典語句。。我們太年輕 以致都不知道以后的時光竟然還有那么長 長得足夠讓我忘幾你 足夠讓我重新喜歡一個人 就像當初喜歡你一樣2。

          <optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

            <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
          1. 
            
          2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

          3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

                1. <listing id="r9hwm"></listing>
                  <delect id="r9hwm"></delect>
                  <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>
                  亚洲丰满少妇xxxxx高潮