• JAVA中 redisTemplate 和 jedis的配合使用


    首先项目A,也就是SpringBOOT项目中使用redisTemplate 来做REDIS的缓存时,你会发现存到REDIS里边的KEY和VALUE,redisTemplat使用jdkSerializeable存储二进制字节编码

    项目B中使用jedis时,存储起来的是字符串,导致项目A要调用项目缓存的键值对时,获取不到

    解决方案:修改项目A的redisTemplate的序列方式

    @Configuration
    @EnableCaching
    public class RedisConfig extends CachingConfigurerSupport {
        
        /**
         * redis模板,存储关键字是字符串,值是Jdk序列化
         * @param factory
         * @return
         * @Description:
         */
        @Bean
        public RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory factory) {
            RedisTemplate<?, ?> redisTemplate = new RedisTemplate<>();
            redisTemplate.setConnectionFactory(factory);
            //key序列化方式;但是如果方法上有Long等非String类型的话,会报类型转换错误;
            RedisSerializer<String> redisSerializer = new StringRedisSerializer();//Long类型不可以会出现异常信息;
            redisTemplate.setKeySerializer(redisSerializer);
            redisTemplate.setHashKeySerializer(redisSerializer);
    
            //默认使用JdkSerializationRedisSerializer序列化方式;会出现乱码,改成StringRedisSerializer
            StringRedisSerializer stringSerializer = new StringRedisSerializer();
            redisTemplate.setKeySerializer(stringSerializer);
            redisTemplate.setValueSerializer(stringSerializer);
            redisTemplate.setHashKeySerializer(stringSerializer);
            redisTemplate.setHashValueSerializer(stringSerializer);
            return redisTemplate;
        }
    }
    周永发
  • 相关阅读:
    re正则表达式公式讲解3
    re正则表达式2
    re正则表达式公式讲解1
    洛谷 P2962 [USACO09NOV]灯Lights
    9.26模拟赛
    BZOJ 1567: [JSOI2008]Blue Mary的战役地图

    洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm
    洛谷P3252 [JLOI2012]树
    P3183 [HAOI2016]食物链
  • 原文地址:https://www.cnblogs.com/yvanBk/p/10497542.html
Copyright © 2020-2023  润新知