使用 *redisTemplate* 尝试通过单次访问 *Redis* 获取多个数据时,使用了 *multi* 和 *exec* 方法。但在运行时报了如下错误: > io.lettuce.core.RedisCommandExecutionException: ERR EXEC without MULTI 代码如下: ```java redisTemplate.multi(); for (String key : keys) { hmget(key); } List<Object> result = redisTemplate.exec(); return result; ``` 根据 [StackOverflow][1] 上的回答,需要调用 `redisTemplate.setEnableTransactionSupport(true)` 方法来开启事务。 修改后代码如下: ```java redisTemplate.setEnableTransactionSupport(true); redisTemplate.multi(); for (String key : keys) { hmget(key); } List<Object> result = redisTemplate.exec(); redisTemplate.setEnableTransactionSupport(false); return result; ``` [1]:https://stackoverflow.com/questions/11148383/how-to-implement-redis-multi-exec-by-using-spring-data-redis (How to implement Redis Multi-Exec by using Spring-data-Redis) Loading... 版权声明:本文为博主「佳佳」的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://www.liujiajia.me/2020/7/9/use-redis-template-to-get-multi-values-from-redis-in-one-response 提交