1. <!--springboot中的redis依赖-->
    2. <dependency>
    3. <groupId>org.springframework.boot</groupId>
    4. <artifactId>spring-boot-starter-data-redis</artifactId>
    5. </dependency>
    6. <!-- lettuce pool 缓存连接池-->
    7. <dependency>
    8. <groupId>org.apache.commons</groupId>
    9. <artifactId>commons-pool2</artifactId>
    10. </dependency>
    1. redis:
    2. host: 172.19.0.14
    3. port: 6379
    4. database: 0
    5. password:
    6. lettuce:
    7. pool:
    8. max-active: 8
    9. max-wait: -1
    10. max-idle: 8
    11. min-idle: 0
    1. import com.fasterxml.jackson.annotation.JsonAutoDetect;
    2. import com.fasterxml.jackson.annotation.PropertyAccessor;
    3. import com.fasterxml.jackson.databind.ObjectMapper;
    4. import org.springframework.context.annotation.Bean;
    5. import org.springframework.context.annotation.Configuration;
    6. import org.springframework.data.redis.connection.RedisConnectionFactory;
    7. import org.springframework.data.redis.core.RedisTemplate;
    8. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    9. import org.springframework.data.redis.serializer.StringRedisSerializer;
    10. @Configuration
    11. public class RedisConfig {
    12. /**
    13. * 配置自定义redisTemplate
    14. *
    15. * @return
    16. */
    17. @Bean
    18. RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
    19. RedisTemplate<String, Object> template = new RedisTemplate<>();
    20. template.setConnectionFactory(redisConnectionFactory);
    21. //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
    22. Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class);
    23. ObjectMapper mapper = new ObjectMapper();
    24. mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    25. mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    26. serializer.setObjectMapper(mapper);
    27. template.setValueSerializer(serializer);
    28. //使用StringRedisSerializer来序列化和反序列化redis的key值
    29. template.setKeySerializer(new StringRedisSerializer());
    30. template.setHashKeySerializer(new StringRedisSerializer());
    31. template.setHashValueSerializer(serializer);
    32. template.afterPropertiesSet();
    33. return template;
    34. }
    35. }
    1. @Resource
    2. private RedisTemplate<String, Serializable> redisTemplate;
    3. redisTemplate.opsForValue().set(mobilePhoneValue, code,300, TimeUnit.SECONDS);