不得不回复一下,以为前面那个的答案是错误的,千万不要被误导了。首先,hash方法是不对的,因为你无法解决冲突。长URL输入不固定,用一些解决冲突的办法,只会带入更复杂的逻辑。正确的方法是采用自增式发号机制。第一个短地址是xxx.xxx/0,第1000个就是xxx.xxx/999。当然10进制的数字比较长,这里可以把10进制转换成62进制(0-9, a ~ z, A ~ Z ).
这里面的发号机是单机的,解决的办法其实很简单,比如两台机器,第一台发单号,第二台发双号。那么每台机器的ID自增就是ID = ID + 2.以此类推,可以用1000台发号机,每台自增1000来解决。