美文网首页
Spring boot整合Redis

Spring boot整合Redis

作者: i小雨 | 来源:发表于2020-12-07 10:12 被阅读0次

    1、导包

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
    

    2、查看redis的自动配置类:RedisAutoConfiguration

    图片.png
    自动配置文件:RedisProperties
    图片.png

    问题:

    • 默认的ReidisTemplate设置的是JDK的序列化方式。
    • 默认的两个泛型都是Object,我们使用需要强制转换<String,Object>
      RedisTemplate<Object, Object> ——>RedisTemplate<String, Object>

    3、自定义redisTemplate

    配置连接:

    spring:
      redis:
        host: 129.204.213.64
        port: 6379  #默认的就是6379,可以不需要配置这一项
    
    @Configuration
    public class RedisConfig {
    
        //固定模板
        //自定义自己的redisTemplate
        @Bean
        public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
            //为了开发方便直接使用<String,Object>
            RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
    
            redisTemplate.setConnectionFactory(factory);
            //设置序列化方式为jackson的序列化方式
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            ObjectMapper om = new ObjectMapper();
            om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
            //配置具体的序列化方式
            redisTemplate.setKeySerializer(jackson2JsonRedisSerializer);
    
            //string的序列化
            StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
            //key采用string的序列化方式
            redisTemplate.setKeySerializer(stringRedisSerializer);
            //hash的key采用string的序列化方式
            redisTemplate.setHashKeySerializer(stringRedisSerializer);
            //value采用Jackson的序列化方式
            redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
            //hash的value采用Jackson的序列化方式
            redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
            redisTemplate.afterPropertiesSet();
    
    
            return redisTemplate;
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Spring boot整合Redis

          本文链接:https://www.haomeiwen.com/subject/rtciwktx.html