2017-09-05 2 views
0
で作業されていない

こんにちは以下の私のRedisのキャッシュ構成である、と私はすべてのパラメータcachename使用してRedisのサーバーに保存されている取得しようとしています:春Redisの問題は:RedisのキャッシュからGetAllCacheNamesがRedisCacheManager

redisCacheManager.getCacheNames()

しかし、それは私のredisサーバーに存在するcacheNameを与えません。私はパラメータcachenameキャッシュ可能注釈を使用して接頭辞

:@Cacheable( "cacheNameを指定")

を私はここで2つの質問がありますか?

1)なぜ私はredisサーバーに格納されているcacheNamesを取得できません。 2)プレフィックスcacheNameを動的に作成するにはどうすればよいのですか?

@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; 
} 

答えて

0

CacheNamesについては、してみてください

@Autowired CacheManager cacheManager  
cacheManager.getCacheNames().forEach(cacheM-> {System.out.println(cacheM);}); 
関連する問題