url参数太多,qrCode生成二维码太密集,使用pako压缩url还是太密,有什么其他的解决办法
可以自己设计一个短链接生成功能,首先选择一个非常短的域名,例如st18. org这种类似域名,然后在redis维护一个整数计数器(这里一定要持久化和做好高可用备份),整数计数器从0开始,每增加一个短链接就增加1,然后往一个redis的hash数据结构里面存放一个计数器到原始链接的键值对,短链接类似st18.org/1。可能会遇到如下问题:
第一,计数器越来越大,达到几百亿,可以考虑使用几种手段来缩短长度,使用redis的0到15号数据库作为计数器前缀,正好是一个十六进制,计数器也使用1024个计数器,使用62进制(0-9a-zA-Z)编码0到1023,对应的hash数据结构类似,最后在输出时也使用52进制即可。有条件的同学甚至可以使用redis cluster多实例增加一个前缀,到时位数一定要明确,比如一位62进制数,这些前缀的位数一定要明确,方便对短链接的hash进行寻址。
第二,并发高是计数器出现问题,可以使用redis事务机制来避免。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
尝试一下短连接
生成二维码的时候一般使用
low
级别的就可以了。