Итерировать разные объекты как String с RedisTemplate

У меня есть ключи разных моделей в Redis.

Я использовал эти шаблоны для хранения значений;

public RedisTemplate<String, Model1> model1RedisTemplate() {
        RedisTemplate<String, Model1> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Model1.class));
        return redisTemplate;
    }

public RedisTemplate<String, Model2> model2RedisTemplate() {
        RedisTemplate<String, Model2> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Model2.class));
        return redisTemplate;
    }

Вот как я сохранил значения:

model1RedisTemplate.opsForValue().set(model1.getId(), model1);
model2RedisTemplate.opsForValue().set(model2.getId(), model2);

Теперь я хочу перебрать все необработанные значения как строку, используя один шаблон Redis, например RedisTemplate<String,String> redisTemplateForAllValues;

Как я могу это сделать?


person sam    schedule 01.07.2018    source источник
comment
не понимаю, что вы хотите, можете ли вы описать больше   -  person Devratna    schedule 01.07.2018
comment
Я хочу перебрать все данные в Redis, используя один шаблон Redis, например: RedisTemplate<String,String> templateForAllValues   -  person sam    schedule 01.07.2018


Ответы (1)


нет собственного метода для получения всех значений из Redis с помощью redisTemplate

но вы можете получить с помощью следующего метода:

public List<String> getAllValues(){
   Set<String> keys = redisTemplate.keys("*");// you can use any specific pattern of key
   return redisTemplate.opsForValue().multiGet(keys);
}
person Devratna    schedule 02.07.2018