Articles14
Tags12
Categories3
改造Spring-data-redis 优雅设置过期时间

改造Spring-data-redis 优雅设置过期时间

Spring-data-redis是一个比较优雅的缓存解决方案,只需要在对应的方法上打上注解就可以便捷的将数据放入redis。

但Spring-data-redis中配置TTL只能按照cacheName的维度进行配置,并不能精确到具体的接口上。

比如以下需求就不能优雅的实现:

public interface CacheDemo{

    // 这个接口只缓存30min
    @Cacheable(value = "user", keyGenerator = "xxxx")
    List<User> listByQuery(UserQuery query);

    // 这个接口只缓存1min
    @Cacheable(value = "user", keyGenerator = "xxxx")
    List<User> takeUserFromObj(Object obj);

    // 这个接口缓存180min
    @Cacheable(value = "user", keyGenerator = "xxxx")
    List<User> getByUserId(String userId);
}

这篇文章就将以定制Cache具体实现类的方式优雅的实现这个功能.

Author:Daizc
Link:http://yoursite.com/2020/08/07/%E6%94%B9%E9%80%A0Spring-data-redis/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可