Удалить имя кеша из сгенерированного кеш ключа - PullRequest
0 голосов
/ 31 декабря 2018

Хотелось бы узнать, есть ли какой-нибудь способ удалить имя кэша из сгенерированного ключа кэша при загрузке Spring 2.

Это код, который я сейчас использую для кэширования данных:

@Cacheable(value = "products", key = "#product.id")
public SimilarProducts findSimilarProducts(Product product){}

Spring boot объединяет строку «products» с каждым генерируемым ключом для сохранения в кеше.Я уже пытался создать свой собственный генератор ключей, но весенняя загрузка продолжает объединять строку «products» в сгенерированные ключи.Спасибо за ваше внимание.

Например, когда я использую:

Product p = new Product();
p.setId("12345");
findSimilarProducts(p);

Сгенерированный ключ будет:

products::12345

Я бы хотел, чтобы он был только 12345.

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Вы можете (возможно, вам нужно) отключить префикс ключа следующим образом.

@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
    RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFactory)
            .cacheDefaults(defaultCacheConfig().disableKeyPrefix())
            .build();
    return cacheManager;
}
0 голосов
/ 31 декабря 2018

spring boot продолжает конкатенировать строку «products» к сгенерированным ключам.

Spring Boot (или абстракция кеша в этом отношении) не делает этого, но конкретная реализация Cache может.Было бы интересно поделиться чуть более подробной информацией о вашей настройке, но я могу только догадываться, что вы используете Redis в качестве хранилища кеша, и по умолчанию CacheKeyPrefix действительно добавляет имя кеша.

Пожалуйста, просмотрите документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...