spring可以很好地管理各种内存的快速缓存。
这些常见的内存缓存库实现方式有redis,Ehcache。
本文阐述的是redis,毕竟这个东西相当容易使用。
spring通过 org.springframework.cache.Cache 和org.springframework.cache.CacheManager两个接口来管理缓存
redis的cache实现类是 RedisCacheManager,它们的关系是这样的:
object
可以看出RedisCacheManager实现了接口CacheManager接口。
一、如何自定义redis中key
如果使用默认的方式来注册RedisCacheManager,如下:
RedisCacheConfiguration redisCacheConfiguration =RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(this.cacheTimeOutHour))
假定注解是这样的:
@Cacheable(value=”getUserPoJoById”,key=”#userId”)
那么生成redis的key是形如这样的:
getUserPoJoById::103
其中双冒号(::)是分隔符。
这是因为RedisCacheConfiguration.defaultCacheConfig()的源码如下:
public staticRedisCacheConfiguration defaultCacheConfig() {return defaultCacheConfig(null);
}publ