redis事务
watch
unwatch
multi
exec
discard
单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。
mysql rollback VS redis discard
Rollback后,该条语句之前的所有语句都失效,回滚到本次事务开始之前的数据库一致性状态
Discard只是结束本次事务,前2条语句造成的影响仍然还在
muitl,将命令先放到queued队列中,exec之后再执行。放入队列中时,只是检查语法的正确性,Exec之后,会执行正确的语句,并跳过有不适当的语句.根本不会回滚。
Redis的事务中,启用的是乐观锁,只负责监测key没有被改动.watch unwatch
原文:https://www.cnblogs.com/duanjiapingjy/p/9409209.html