参考链接:
https://soulmachine.gitbooks....
理解:
- 需求是要将一个长链接与一个短链接互相映射,并且不能有冲突。
- 这个短链接可以使用一个随机字符串也可以通过某些算法从长链接计算出来。但有合适的算法吗,base64?实际算出来的字符串可能也不短。所以更好的方式是将映射关系存储下来。
- 既然要将映射存储,那么使用短链可以是任意值,重要的是如何让其尽量短。首先要解决短链格式的问题,使用随机字符串是有冲突的可能性的。所以可以使用一个自增的数字,这就是分布式id生成的逻辑了。那么直接用这个id可以吗?个人理解是可以的,只是还可以更短。id是十进制数字,可以将大小写英文字母+十个数字,一共62个字符将十进制的数字表示为62进制,这样可以最大限度的缩短短链长度。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。