短链的作用
1.链接变短
2.过滤垃圾链接
实现原理
key-value存储 利用 自增长的key作为 短链 (这样能保证不重复且能有效利用)
如果量特别大 可以给redis设置失效时间 如 1天失效 且只要被访问过则重新计时 这样能保证热门url不会过期 便于统计分析用户行为
代码
@HystrixCommand
String set(String longURL) {
StringshortURL=null
Redis.with(master) { Jedis jedis ->
shortURL= jedis.hget(l2s, longURL)
if(!shortURL) {
longn = jedis.hincrBy(l2s,'index',1) 生成短链的key
shortURL=long2str(n)
jedis.hset(s2l,shortURL, longURL)
jedis.hset(l2s, longURL,shortURL)
}
shortURL
}
}
static String long2str(longn) {
StringBuilder sb =newStringBuilder()
while(n >0) {
inti = n &0x3F
sb.append(chars[i])
n >>=6
}
sb.toString()
}