redis的key前缀
没有自定义CacheManager的情况下,默认缓存键的默认名称为cacheName::key
生成规则如下:
使用@Cacheable配置时,会调用org.springframework.data.redis.cache.RedisCache#createCacheKey方法

其中参数key为@Cacheable注解中配置的key
进而调用org.springframework.data.redis.cache.RedisCache#prefixCacheKey方法

其中name就是@Cacheable注解中配置的value,也即cacheNames
之后调用org.springframework.data.redis.cache.RedisCacheConfiguration#getKeyPrefixFor方法

缓存的生成规则就在org.springframework.data.redis.cache.CacheKeyPrefix#simple这个方法中

SEPARATOR默认为::
但是如果自定义CacheManager,举例如下:
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
RedisCacheConfiguration cacheConfiguration =
RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(1)).computePrefixWith(name -> {
return "-";
});
return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build();
}
此时缓存键的默认生成规则就会变为-key(computePrefixWith方法就是配置缓存键的前缀)
也可以使用computePrefixWith(name->name),此时就会直接用cacheName加上key了

浙公网安备 33010602011771号