在新浪微博裏常常會看到http://sinaurl.cn/xxx,這種簡短的url。用這種方式去代替換http://test.test/xxx/xxxx/xxx.php?xxx=333,不但可以節省字段,還可以有效的防止垃圾廣告。
實現的原理比較簡單,只需要兩個字段就可以,一個是key,唯一值(如id),另一個是value(如url)。單單靠數據庫(mysql)也可以實現,但對於高併發的網站來說,肯定不行,所以可以使用ttserver。它是日本人開發的一個key-value數據庫,支持高併發和分佈式存儲。實現這種簡短url是最好不過了。。
首先創建表
CREATE
TABLE
IF
NOT
EXISTS `url` (
`id`
int
(11)
NOT
NULL
primary key auto_increment,
`tiny`
char
(10)
NOT
NULL
,
`url` text
NOT
NULL
,
UNIQUE
KEY
`tiny` (`tiny`)
) ENGINE=MyISAM
DEFAULT
CHARSET=utf8 AUTO_INCREMENT=1;
然後使用php自帶的函數dechex將自增id轉爲十六進制
結果爲:a98ac7
然後將結果存到ttserver