当前位置:数据分析 > 当Redis遇到@Transactional时,会有很大的陷阱,所以要小心!

当Redis遇到@Transactional时,会有很大的陷阱,所以要小心!

  • 发布:2023-10-06 08:00

最近项目的生产环境遇到了一个奇怪的问题:

现象:每天早上客服人员在后台创建客服事件时,创建失败。当我们重启这个微服务,就可以在后台正常创建客服事件了。第二天早上创建又会失败,微服务必须重新启动。

初步排查:创建客服事件时,会通过Redis的自增操作,生成唯一的分布式ID作为事件id。代码如下:

return redisTemplate.opsForValue().increment("计数", 1);

而且恰好这个增量操作每天早上都会返回null,导致后续出现一系列逻辑错误,无法保存客服事件。当微服务重启后,这个增量操作又恢复正常了。

相关文章