springboot整合redis时redisTemplate踩坑

springboot整合redis时redisTemplate踩坑

问题场景描述

springboot项目整合redis,用户注册时会将账号和验证码以K-V键值对存入redis,但是验证时根据手机号得到的验证码数据一直为空,并且数据库keys *查到的数据很奇怪,有韩文乱码:
在这里插入图片描述

尝试排错

一开始排查方向就是乱码,重新更换redis配置类的KV序列化方式,还是不行,从数据库角度使用 --raw还是不行,甚至想专门使用redisutil来代替opsForValue().set()结果都不行(笑~),但是奇怪的是我直接在项目中直接get对应key的值却能正常得到value,这里我就奇了个怪了.后来往上搜索看到前辈也有一样的问题,说是使用了两个redistemplate的问题,感觉是突破点,然后开始排查
前辈文章链接:
https://blog.csdn.net/fulong0406/article/details/116197789

问题确定

根据前辈提供的思路,我发现在项目中使用redistemplate操作set值后紧接着getvalue的返回结果是个对象,(当时因为是直接sout所以还没注意到这一点),但是我再验证码校验的时候注入的redistemplate里面有泛型规定KV都需要都是string类型:
在这里插入图片描述
到这里问题就确定了,redis数据库中keys *查到的带有乱码的其实就是之前以对象形式存储的值就是对象,只是挺奇怪为什么会以这种方式显示.

问题解决

确定问题就好了,把redistemplate的泛型全都锁定为string就好了,反正类似验证码这种东西只需要string类型进行校验即可,好了,结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值