1.pom.xml 依赖

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-redis</artifactId>
    4. </dependency>

    2.配置属性

    1. spring.cache.type=redis

    3.自定义配置

    1. /**
    2. * redis 自定义缓存管理器
    3. */
    4. @Configuration
    5. public class RedisCacheConfiguration extends CachingConfigurerSupport {
    6. /**
    7. * 自定义缓存管理器.
    8. *
    9. * @param redisTemplate
    10. * @return
    11. */
    12. @Bean
    13. public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
    14. RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
    15. // 设置默认的过期时间
    16. cacheManager.setDefaultExpiration(20);
    17. Map<String, Long> expires = new HashMap<String, Long>();
    18. // 单独设置
    19. expires.put("roncooCache", 200L);
    20. cacheManager.setExpires(expires);
    21. return cacheManager;
    22. }
    23. /**
    24. * 自定义key. 此方法将会根据类名+方法名+所有参数的值生成唯一的一个key,即使@Cacheable中的value属性一样,key也会不一样。
    25. */
    26. @Override
    27. public KeyGenerator keyGenerator() {
    28. return new KeyGenerator() {
    29. @Override
    30. public Object generate(Object o, Method method, Object... objects) {
    31. StringBuilder sb = new StringBuilder();
    32. sb.append(o.getClass().getName());
    33. sb.append(method.getName());
    34. for (Object obj : objects) {
    35. sb.append(obj.toString());
    36. }
    37. return sb.toString();
    38. }
    39. };
    40. }
    41. }

    实现例子和 Spring Boot Caching-Ehcache 一样。