在新浪微博里常常会看到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