自动秒收录

代码获取不到怎么办 (代码获取不到 redis命令行存入了数据)


文章编号:1131 / 更新时间:2023-11-09 18:13:20 / 浏览:

在redis里输入指令monitor,再重新执行下这段代码,看到 redis 上打印以下内容

代码获取不到怎么办代码获取不到redis命

代码执行的命令是

exists serialId
get serialId

但实际上却是

exists \xac\xed\x00\x05t\x00\bserialId
get \xac\xed\x00\x05t\x00\bserialId

这两个命令,那当然获取不到值啦,可这是为什么呢?

原因就是没有对redisTemplate进行序列化处理,java 代码会将 key 转化成对应的十六进制的数值进行操作

@Configuration
@EnableCaching //开启注解
public class RedisConfig extends CachingConfigurerSupport {
     * retemplate相关配置
     * 序列化配置,如果没有配置序列化的话可能会出现往redis存了值,但是获取不到
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jacksonSeial.setObjectMapper(om);
        template.setValueSerializer(jacksonSeial);
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(jacksonSeial);
        template.afterPropertiesSet();
        return template;

添加序列化的配置重启服务,执行,控制台上看到能正确获取到值了



相关标签: NoSQLRedisJava

本文地址:https://www.0558.la/article/e5e6f147be4cd698d17b.html

上一篇:组件微信小程序怎么弄组件微信小程序input...
下一篇:mysql数据库还原Mysql数据库引擎...

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.0558.la/" target="_blank">自动秒收录</a>