当前位置: 首页 > news >正文

Redis使用increment方法返回null的原因以及解决方案

public static void main(String[] args) {redisTemplate.setEnableTransactionSupport(true);  //开启事务支持redisTemplate.multi();  //标记事务块的开始redisTemplate.opsForValue().set("name","zs");redisTemplate.opsForValue().set("pass","123");redisTemplate.exec();   //由exec命令原子性的执行}

开启了redis的事务支持,使用spring的事务注解@Transactional在执行increment 方法时会返回 null。

有以下两种解决方案:

  1. 每次redis的事务操作完毕之后,关闭redis事务支持,再执行@Transactional中的redis命令(多线程的情况下会有弊端);
  2. 创建两个redisTemplate,一个专门执行redis事务,一个用来执行普通redis命令;
@Configuration
public class RedisConfig {private RedisConnectionFactory redisConnectionFactory;public RedisConfig(RedisConnectionFactory redisConnectionFactory){this.redisConnectionFactory = redisConnectionFactory;}@Bean("redisTemplate")      //无事务的beanpublic StringRedisTemplate redisTemplate(){StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();stringRedisTemplate.setConnectionFactory(redisConnectionFactory);return stringRedisTemplate;}@Bean("redisTemplateTransaction")   //有事务的beanpublic StringRedisTemplate redisTemplateTransaction(){StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();stringRedisTemplate.setEnableTransactionSupport(true);stringRedisTemplate.setConnectionFactory(redisConnectionFactory);return stringRedisTemplate;}
}

转载文章:Redis使用increment方法返回null的原因以及解决方案

http://www.lryc.cn/news/246050.html

相关文章:

  • springMVC,什么是Spring MVC? Spring MVC的主要组件? springMVC工作原理/流程 MVC框架
  • 【论文阅读】TACAN:控制器局域网中通过隐蔽通道的发送器认证
  • C语言第三十五弹---打印九九乘法表
  • 线性代数的艺术
  • 基于注解配置的AOP
  • 【Qt】QStackedWidget、QRadioButton、QPushButton及布局实现程序首页自动展示功能
  • 探索 V8 引擎的内部:深入理解 JavaScript 执行的本质
  • 单片机学习11——矩阵键盘
  • Java游戏 王者荣耀
  • 接口测试场景:怎么实现登录之后,需要进行昵称修改?
  • 石油化工专业MR仿真情景教学演练
  • Docker配置Halo搭建个人博客-快速入门
  • 禁止编辑的PPT幻灯片,如何有效保护文件安全?
  • 优化前端性能
  • 1.1 C语言之入门:使用Visual Studio Community 2022运行hello world
  • Android NDK开发中常用的gradle配置
  • 【AUTOSAR-DoIP】通过 DoIP 进行符合 Autosar 的车辆诊断
  • GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭
  • 【算法萌新闯力扣】:回文链表
  • php站点伪静态配置(Apache+Linux)
  • Figma 插件学习(二)- 常用属性和方法
  • 基于Flutter的图片浏览器的实现
  • STM32-使用固件库新建工程
  • 商用车量产智能驾驶路径思考
  • flink消费kafka限制消费速率
  • 搭建Appium工具环境
  • 【面经八股】搜广推方向:常见面试题(六)
  • 6.前端--CSS-基础选择器【2023.11.26】
  • Java制作“简易王者荣耀”小游戏
  • 正则表达式例题-PTA