用到 Redis 的递增操作来生成一个唯一的分布式 ID
这里如果有自增的命令,如果开启了事物,自增命令会返回空
问题原因,说明 RedisTemplete 开启了 Redis 事务支持后,在 @Transactional 中执行的 Redis 命令也会被认为是在 Redis 事务中执行的,要执行的递增命令会被放到队列中,不会立即返回执行后的结果,返回的是一个 null,需要等待事务提交时,队列中的命令才会顺序执行,最后 Redis 数据库的键值才会递增
解决方案
创建两个 StringRedisTemplate,一个专门用来执行 Redis 事务,一个用来执行普通的 Redis 命令。
————————————————
原文链接:https://blog.csdn.net/m0_69632475/article/details/127822015