存入Redis的值前面有很多空格

0 阅读1分钟

说明:记录一次使用Redis的错误;

场景

在将验证码存入Redis时,发现存入的值前面有很多空格,导致在与前端传入的值比较时,一直是false,验证不通过。如下:

在这里插入图片描述

上面这些“□”是占位符,复制出来是空字符串;

在这里插入图片描述

解决

使用的Redis方法错了,我用的是下面这个API;

redisTemplate.opsForValue().set(uuid, text, 60);

后面这个60不代表过期时间,而是偏移量,指将数据偏移多少位,我上面这个方法表示将值偏移60位,所以前面出现了60个空字符

在这里插入图片描述

正确的方法如下,是四位参数,最后一位表示过期时间的单位;

redisTemplate.opsForValue().set(uuid, text, 60, TimeUnit.SECONDS);

如下:

在这里插入图片描述

代码是Copilot生成的,都怪他;

首次发布

hezhongying.blog.csdn.net/article/det…