RedisTemplate和StringRedisTemplate序列化方式的坑

本文探讨了在使用RedisTemplate时遇到的序列化问题,导致无法正确从Redis中获取校验码。通过观察发现RedisTemplate使用的是JdkSerializationRedisSerializer,可能将值转换成了不可读格式。通过对比,使用StringRedisTemplate则能正常获取数据,解决了问题。
摘要由CSDN通过智能技术生成

需求:从redis中取服务已经生成的校验码

redis可视化工具上看到是有值如下,

取值代码:

RedisUtils.java 

    /**
     * 获取普通对象
     *
     * @param key
     *            键
     * @return 对象
     */
    public static Object getValue(final String key) {
        return redisTemplate.opsForValue().get(key);
    }

但是使用RedisTemplate工具类取获取值时为空,甚至key值也不存在!!!debugger发现RedisTemplate使用的序列化方式是:JdkSerializationRedisSerializer,猜想是不是取值的时候RedisTemplate把我们的值转换为了其他的格式。为了检验,在本地生成校验码存到本地redis代码和结果如下:

xxxxServive.java

RedisUtils.setValueTimeout("TEST","checkCode2333" ,500);//redis工具类存值和时间

RedisUtils.java 

setValueTimeout()

    /**
     * 存入普通对
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值