cachemanage管理_spring使用RedisCacheManager管理key的一些问题

  • Post author:
  • Post category:其他


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



版权声明:本文为weixin_35629057原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。