【问题标题】:How can I prefix cacheNames with spring.cache.redis.key-prefix?如何使用 spring.cache.redis.key-prefix 为 cacheNames 加上前缀?
【发布时间】:2019-06-26 02:11:20
【问题描述】:

我设法让cacheNames 工作,我的 Redis 密钥看起来像这样。

{cacheName}::{myKey}
{cacheName}::{myKey}

现在我想知道如何在 {cacheName} 部分前面加上我配置的 spring.cache.redis.key-prefix 值?

当我输入这些条目时,

spring.cache.redis.key-prefix=some::
spring.cache.redis.use-key-prefix=true

我希望钥匙看起来像这样。

some::{cacheName}::{myKey}
some::{cacheName}::{myKey}

【问题讨论】:

    标签: spring-data-redis spring-cache


    【解决方案1】:

    我不确定如何使用配置和内部功能。

    我堆积了一个问题。 https://jira.spring.io/browse/DATAREDIS-1006

    我设法用以下代码实现了我想要做的事情。

    @PostConstruct
    private void onPostConstruct() {
        if (springCacheRedisKeyPrefix != null) {
            springCacheRedisKeyPrefix = springCacheRedisKeyPrefix.trim();
        }
        if (springCacheRedisUseKeyPrefix && springCacheRedisKeyPrefix != null
            && !springCacheRedisKeyPrefix.isEmpty()) {
            cacheKeyPrefix = cacheName -> springCacheRedisKeyPrefix + "::" + cacheName + "::";
        } else {
            cacheKeyPrefix = CacheKeyPrefix.simple();
        }
    }
    
    @Bean
    public RedisCacheManager cacheManager(final RedisConnectionFactory connectionFactory) {
        final RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFactory)
                .cacheDefaults(defaultCacheConfig()
                                       .computePrefixWith(cacheKeyPrefix)
                                       .entryTtl(Duration.ofMillis(springCacheRedisTimeToLive))
                )
                .build();
        return cacheManager;
    }
    
    @Value(value = "${spring.cache.redis.key-prefix:}")
    private String springCacheRedisKeyPrefix;
    
    @Value("${spring.cache.redis.use-key-prefix:false}")
    private boolean springCacheRedisUseKeyPrefix;
    
    @Value("${spring.cache.redis.time-to-live:1200000}")
    private long springCacheRedisTimeToLive;
    
    private transient CacheKeyPrefix cacheKeyPrefix;
    

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 2020-02-21
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2019-10-28
      相关资源
      最近更新 更多