短Url 系統設計

2021-08-15 09:40:01 字數 861 閱讀 6308

方案一:自己寫演算法,把長url 轉換為短的   1--10,a--z,a--z  62個元素。這有點難啊,需要跑多久。並且對方輸入的url長度的不固定,所以,很難。

方案二:表的對映,使用k-v,形式。乙個短的key,去對映長的url,長的url依然還是那個url,只不過起了乙個外號(別名)。

注意:1.key的唯一性,

my function :我採用的是方案二,專案背景(公司的專案中使用,暫且不考慮惡意生成,模擬真實請求,生成短鏈結,占用資料池)。

實現,獲取長連線值,通過md5函式(壓縮),當作key,為了防止重複,我們再加上時間戳,這樣就有效的防止key的重複。

可能此處有人認為,這個生成的鏈結也不是太短。的確,在專案中發現,帶上網域名稱,再帶上key,這樣以來也不是太短,不過可以保證在100以內。

為了優化,我們可以考慮用最短的網域名稱,然後後面的key,可以不用md5,可以用插入之後返回的自增id,來當作唯一的key。自增主鍵索引,就保證了key的唯一性。這樣也有效。方法的實現的宗旨就是對映,保證k-v一一對應。

再次優化,針對併發的操作,可以使用佇列,或者加鎖,或則分庫分表。假如有兩個庫,那麼就求摸,來增加。

**很簡單,主要是實現思路,我的可能有沒考慮到的地方,多多指教。

/**

* @param $url

* name: shorturl

* date: 2018-02-05

*/function weizaojiaoshorturl($url,$org_id = '0')else

}else

}

public function index()else

}}

短 URL 系統是怎麼設計的?

tang minyi 的回答,也非常不錯,如果面試者這麼回答,我也會很高興的。對於我用詞比較激烈的問題,我面試時真實想法既是如此,也懶得潤色了。這個問題看到就想答。而這個問題,也是我現在招聘面試題裡面必考的一道,這一道題裡面有很多可考的地方,能夠相對綜合的考察候選人的功力。最爛的回答實現乙個演算法,...

設計短鏈結系統

短鏈結轉換是將任意乙個長的 url 如 轉為乙個固定長度的url,如itlym.cn sd5d1r,並可以通過訪問短 url 來跳轉到長url上。呼叫簡訊服務傳送簡訊時,會有字數限制或因字數長短收取不同費用。如何設計乙個可靠的短鏈結系統 由於url字元限制,推薦為大小寫字母加數字,共62種字元。一般...

系統設計 短鏈結系統 short url

最近看了一些關於短址 short url 方面的一些部落格,有些部落格說到一些好的東西,但是,也不是很全,所以,這篇部落格算是對其它部落格的乙個總結吧 短址,顧名思義,就是把長的 url 轉成短的 url,現在提供這種服務的有很多公司,我們以google家的 url shortener 服務 為例。...