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;
        }
    }
    周永发
  • 相关阅读:
    127.0.0.1:8080 不在以下 request 合法域名列
    [SAP] 34. System Manager
    [SAP] 33. Deployment and instance management
    [Angular] State provider solutions
    [Cloud Architect] 9. Securing Access to Cloud Services
    [Git] Squash commits
    [Angular] Overlay CDK
    [Cloud Architect] 8. Infrastructure as Code
    [DevOps] Terraform Remote State Management
    [DevOps] Using Terraform to Create an EC2 Instance
  • 原文地址:https://www.cnblogs.com/yvanBk/p/10497542.html
Copyright © 2011-2022 走看看