Spring boot整合Redis

2020-12-07  本文已影响0人  i小雨

1、导包

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

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

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

问题:

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;

    }

}
上一篇 下一篇

猜你喜欢

热点阅读