佳佳的博客
Menu
首页
通过 RedisTemplate 单次访问获取多个缓存值
Posted by
佳佳
on 2020-07-09
IT
Java
Redis
使用 *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)
版权声明:原创文章,未经允许不得转载。
https://www.liujiajia.me/2020/7/9/use-redis-template-to-get-multi-values-from-redis-in-one-response
“Buy me a nongfu spring”
« Elasticsearch 使用 IK Analysis 实现中文分词
mysql timestamp fractional seconds default value »
昵称
*
电子邮箱
*
回复内容
*
(回复审核后才会显示)
提交
目录
AUTHOR
刘佳佳
江苏 - 苏州
软件工程师