redis事务
事务为一组顺序执行的指令,通常不会被打断,事务的原子性表示这些指令要么都执行,要么都不执行。
关键词:
- multi //标记事务开端
- exec //执行该组事务
- discard //清除事务队列中所有指令,并结束当前事务
- watch //监控某一键值,事务执行过程中若键值变化则放弃本次事务,否则继续执行
- unwatch //放弃监控所有键值
redis使用multi
标记事务开端,使用exec
执行该组事务。
当压入事务队列过程中某一指令报错,则exec时全部不执行。
当exec执行过程中某一指令出现问题,如做数值加减失败,则错误指令不执行,其余执行。
multi //标记事务开端,将后面的指令压入事务队列中
set k1 v1
set k2 v2
set k3 v3
exec //执行该组指令
multi //标记事务开端,将后面的指令压入事务队列中
set k1 v1
set k2 v2
set k3 v3
discard //清除事务队列中所有指令,并结束当前事务
set version 1
watch version //监控version键,若其发生变化则放弃事务执行
multi
set k1 v1
set k2 v2
set k3 v3
exec
set version 1
watch version //监控version键,若其发生变化则放弃事务执行
unwatch //放弃监控所有键值,包括version
multi
set k1 v1
set k2 v2
set k3 v3
exec