说明:记录一次使用Redis的错误;
场景
在将验证码存入Redis时,发现存入的值前面有很多空格,导致在与前端传入的值比较时,一直是false,验证不通过。如下:
上面这些“□”是占位符,复制出来时空字符串;
解决
使用的Redis方法错了,我用的是下面这个API;
redisTemplate.opsForValue().set(uuid, text, 60);
后面这个60不代表过期时间,而是偏移量,指将数据偏移多少位,我上面这个方法表示将值偏移60位,所以前面出现了60个空字符
正确的方法如下,是四位参数,最后一位表示过期时间的单位;
redisTemplate.opsForValue().set(uuid, text, 60, TimeUnit.SECONDS);
如下:
代码是Copilot生成的,都怪他;