Salut ci-dessous est ma configuration de cache Redis, et je suis en train de faire tous les nom_cache stockés sur le serveur Redis en utilisant:numéro du printemps Redis: GetAllCacheNames de cache Redis ne fonctionne pas avec RedisCacheManager
redisCacheManager.getCacheNames()
mais il ne me donne pas le cacheName présent dans mon serveur redis.
I préfixe cacheName utilisant l'annotation cachable: @Cacheable ("cacheName")
J'ai 2 questions ici?
1) Pourquoi je ne suis pas en mesure d'obtenir le cacheNames que j'ai stocké dans Redis Server. 2) Comment puis-je créer dynamiquement le préfixe cacheName puisque je ne veux pas écrire de méthode séparée pour chacun d'entre eux?
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(redisHost);
factory.setPort(redisPort);
factory.setUsePool(true);
return factory;
}
@Bean
RedisTemplate<Object, Object> redisTemplate() {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
// redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
return redisTemplate;
}
@Bean
CacheManager cacheManager() {
// configuration to set the time to expire in seconds, messageCache is name of method
Map<String,Long> cacheMap = new HashMap<String, Long>();
//cacheMap is the name of the map where we put all the method names for which we want time to expire.
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate());
redisCacheManager.setUsePrefix(true);
//redisCacheManager.setExpires(cacheMap);
return redisCacheManager;
}