Как мы можем получить доступ к одному и тому же кешу между двумя военными файлами? - PullRequest
0 голосов
/ 04 октября 2019

Я использую аннотацию @Cacheable из Spring для кэширования данных и Redis в качестве менеджера кэша.

Я создал кэш с именем xyx на одну войну, теперь я хочуполучить доступ / обновить / удалить тот же кеш в другой войне.

Ниже приведен код, который я использовал для создания менеджера кеша

@Bean
  public JedisConnectionFactory redisConnectionFactory() {
    JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();

    // Defaults
    redisConnectionFactory.setHostName("127.0.0.1");
    redisConnectionFactory.setPort(6379);
    return redisConnectionFactory;
  }

Bean
  public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory cf) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
    redisTemplate.setConnectionFactory(cf);
    return redisTemplate;
  }

@Primary
  @Bean(name = "cManager")
  public CacheManager cacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cm= new RedisCacheManager(redisTemplate);
    return cm;
  }

Ниже приведен метод кеширования данных в войне 1

@Cacheable(value = "xyz"  , cacheManager = "cManager")
public Map<String, Map<String, List<DTO>>> cachingData()
        throws CustomException {
    //logic
    }

1 Ответ

0 голосов
/ 04 октября 2019

Пока оба веб-приложения подключаются к одному и тому же экземпляру Redis и используют одинаковые cacheName и ключ кэша, это должно работать прозрачно, как если бы это было в одной войне.

Пример аннотации

@Cacheable(cacheNames = "myCache", key = "'myKey'")
public String myCacheableMethod(){
    return "some value";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...