zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    周永发
  • 相关阅读:
    五个Metro UI 风格的网页设计
    cocos2dx学习资料(转)
    Python性能鸡汤
    7款很棒的 HTML5 视频播放器
    优秀的后台管理界面设计案例分享
    Task的理解(转)
    超棒的20款javascript工具提示条(tooltips)类库(转)
    Xcode 证书生成、设置、应用(转)
    分享17个漂亮的电子商务网站(转)
    强烈免费25款商务logo设计模板(转)
  • 原文地址:https://www.cnblogs.com/yvanBk/p/10497542.html
Copyright © 2011-2022 走看看