2011-01-27 31 views
2

我想編寫一個不需要使用數據庫的URL縮短器。相反,爲了儘可能減少移動部分,腳本會根據算法(如md5,除了md5會太長),爲我的URL創建唯一的哈希值。我不確定我會如何去做這件事。有什麼建議?沒有數據庫的URL縮短器

如果它很重要,我寧願寫在Ruby中。

+6

不計算。 [hash](http://en.wikipedia.org/wiki/Hash_function)無法解析爲原始內容。 :-)此外,試圖做到這一點沒有數據庫或(更好)鍵/值存儲是愚蠢的。 – 2011-01-27 15:42:48

+0

我的最終目標是儘可能使用最簡單的URL縮寫。一個關鍵/價值商店聽起來不錯。你會如何推薦我去做那部分? – 2011-01-27 15:51:42

回答

1

最終,如果您經過短鏈接,您只需生成一個適當易讀的獨特代碼(嘗試省略類似的字母/數字,如零和'o',以防某些可憐的肛交者實際上不得不鍵入它)並將該代碼與某種形式的商店中的原始網址相關聯。

雖然我能理解爲什麼你不希望使用一個數據庫,在很多方面它存儲的完美的形式,特別是如果你看一下專用鍵/值存儲,如CassandraRedisMongoDB之一, (也就是說,如果您處於陌生領域,簡單的「傳統」SQL數據庫可能是一個簡單的第一步。)

0

如果不在某種數據庫中查找,您將無法從哈希代碼解析原始URL。

在沒有數據庫的情況下,您唯一可以做的事情就是壓縮URL,然後在解析URL時對其進行解壓縮。

嚴格來說,我猜你可能只是哈希的URL。但是,如果您無法將其解析回原始網址,那可能會有什麼價值?

1

你可以用幾個字符串操作工具來做到這一點,可以將URL轉換爲模糊的東西,但正如你在你的問題中指出的那樣,你從這樣做得到的url會比通常的url shortener更長。

網址壓縮不好。