场景
在生成二维码,发邀请连接,动态说说的时候,犹豫连接过长导致二维码像素点过密,文字不突出。这个时候想要把长连接改成短码。
工具
- redis
- hashIds
环境
- java springboot
步骤
- 下载好redis之后启动
- 编写hashIds 的短码生成规则,核心代码如下
// hashids构造函数的第一个参数为混淆 “盐” 第二个值表示最小的长度 不代表固定长度
Hashids hashids = new Hashids("your salt", shortLen);
//利用redis的inc原子性的特征制造自增序列
long increment = redis.incremnet('KEY')
String shortCode = hashids.encrypt(increment);
redis.set(shortCode,url)
...
利用redis保证短码生成基础数值是不重复的,使用hashIds让自增序列的上一位数下一位数关联打断。比如6,7 hashIds之后可能是 xA,bU。