我在 spring boot应用程序中使用 RedisTemplate ,我可以使用singleKey进行阅读。
String valueJson = (String) redisTemplate.opsForValue().get(setKey(someId));
我现在有一个" someId"喜欢"列出someIds"我想获得所有ID的数据。当然我可以在列表上进行迭代并使用单独的键点击redis,但我不想要那个,而是我想提供整个列表来一次性获得响应。
请帮忙。
答案 0 :(得分:6)
您需要使用流水线操作:https://redis.io/topics/pipelining
List<Object> results = redisTemplate.executePipelined(
new RedisCallback<Object>() {
public Object doInRedis(RedisConnection connection) throws DataAccessException {
StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
for(String id:someIds)
stringRedisConn.get(id);
return null;
}
});
或者在Java 8中:
List<Object> results = redisTemplate.executePipelined((RedisCallback<Object>) connection -> {
StringRedisConnection stringRedisConn = (StringRedisConnection) connection;
someIds.forEach(id -> {
stringRedisConn.get(id);
});
return null;
});
结果列表将包含您想要的所有内容。