Daizc
count.articles52
count.tags25
count.categories3
改造Spring-data-redis 优雅设置过期时间

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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具体实现类的方式优雅的实现这个功能.

copyright.author:Daizc
copyright.permalink:https://note.bequick.run/%E6%94%B9%E9%80%A0Spring-data-redis/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可