使用RedisTemplate将不同的对象迭代为String

时间:2018-07-01 18:24:48

标签: spring spring-boot redis spring-data-redis

我在Redis中有不同的型号键。

我使用这些模板存储值;

client.on('message', (message) => {

  function msg_send(content) {
    return message.channel.send(content);
  }
  
  const msg = message.content;
  
  if (msg.includes("I'm home")) return msg_send("Welcome home!");
  
});

client.login("token");

这就是我存储值的方式:

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模板将所有原始值迭代为String。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

没有使用redisTemplate从Redis获取所有值的本地方法

但是您可以使用以下方法:

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