短链接跳转的基本原理
客户端-->发出短链接请求--> 302跳转到--->长连接
这里说一下status code. 301和302的区别
301: 代表永久重定向....也就是第一次拿到请求重定向以后, 下次浏览器再次请求短链接的时候, 不会真正的请求短链接服务器, 而是从浏览器本地的缓存拿到长链接....所以一般不使用301
302: 代表临时重定向, 每次断连请求都会请求锻炼服务器, 除非在响应头标识了cache control expire ,这样浏览器才会缓存, 这样便于server统计点击数.虽然使用...hash冲突了怎么办?
虽然marmurhash发生冲突的概率很低, 但还是要考虑, 一旦发生冲突, 怎么办?如何规避调.
短链接和长连接有一个对应关系, 保存这种对应关系有很多方案....当长链接经过marmurhash得到短链接以后, 我们拿到长链接的映射, 去db里做检索, 如果没有找到就插入, 如果找到了, 就说明违反了唯一性索引.