1.概述
首先 Redis 是支持一定事务能力的 NoSQL
, 在 Redis 中使用事务,通常的命令组合是 watch...multi .. .exec
,也就是要在一个 Redis 连接中执行多个命令,这时我们可以考虑使用 SessionCallback
接口来达到这个目的 。其 中,
watch
命令是可以监控 Redis 的一些键:multi
命令是开始事务,开始事务后 , 该客户端 的命令不会马上被执行 ,而是存放在一个队列里,这点是需要注意 的地方,也就是在这时我们执行一些堪回数据的命令 , Redis 也是不会马上执行的,而是把命令放到一个队列里,所以此时调用 Redis 的命令,结果都是返回 null ,这是初学者容易犯的错误:exe
命令的意义在于执行事务,只是它在队列命令执行前会判断被 watch 监控的 Redis 的键的数据是否发生过变化 ( 即使赋予与之前相同的值也会被认为是变化过〉,如果它认为发生了变化,那么 Redis 就会取消事务 , 否则就会执行事务.
Redis 在执行事务