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

posted @ 2025-02-19 09:35  kanaliya  阅读(160)  评论(0)    收藏  举报