Я использую кэш Redis (через клиент Jedis), и я хотел бы использовать ValueOperations#multiGet
, который принимает Collection
ключей и возвращает List
объектов изкеш, в том же порядке. У меня вопрос, что происходит, когда некоторые ключи находятся в кеше, а другие нет? Мне известно, что под ним используется Redis MGET , который возвращает nil
для любых элементов, которых нет в кэше.
Я не могу найти никакой документации о том, как ValueOperations
будетинтерпретировать этот ответ. Я предполагаю, что они будут null
и, безусловно, могут его протестировать, но было бы опасно строить систему на недокументированном поведении.
Для полноты, вот как настроен клиент кэша:
@Bean
public RedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
redisConnectionFactory.setHostName(address);
redisConnectionFactory.setPort(port);
redisConnectionFactory.afterPropertiesSet();
return redisConnectionFactory;
}
@Bean
public ValueOperations<String, Object> someRedisCache(RedisConnectionFactory cf) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(cf);
redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate.opsForValue();
}
Я использую spring-data-redis:2.1.4
Итак, есть ли документация по этому поводу или какой-то надежный источник правды?