redis事务使用时遇到的问题

redis事务使用时遇到的问题_第1张图片
关于事务的几个方法
multi():标记一个事务的开始
exec():执行所有的事务块内的命令
discard():取消事务,放弃执行事务块内的所有命令
watch key :监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
unwatch  :取消 WATCH 命令对所有 key 的监视。
关于使用redisTemplate操作redis的错误用法:

redis事务使用时遇到的问题_第2张图片

这样直接调用的结果会报异常

redis事务使用时遇到的问题_第3张图片

看了一下multi()方法的源码,发现这样在调用execute()方法时,每次都会产生一个先得连接对象

redis事务使用时遇到的问题_第4张图片

正确的做法:
在使用redisTemplate编写事务代码时:构建SessionCallback对象

redis事务使用时遇到的问题_第5张图片

注意:我在调用multi()方法后,不能在通过key取到值之前设置的值了(原因不清楚,还望哪位大佬能指导一波)
 

你可能感兴趣的:(redis)