Итерируйте разные объекты как String с RedisTemplate - PullRequest
0 голосов
/ 01 июля 2018

У меня есть разные модели клавиш в 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;

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

1 Ответ

0 голосов
/ 02 июля 2018

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

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

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