假期过了,赶紧来更新一下东东,最近项目一直处于上线阶段,每天加班调试优化模块功能,导致好几天回到家已经是后半夜了。好了,言归正传。
关于Redis事务一些小小的总结
一说到事务,肯定想到的是像传统关系型数据库那样,要么全部成功,要么全部失败。事务的四大特性ACID信手拈来。但这里对不起了,Redis事务可跟关系型数据库不太一样了,因为它只是部分支持事务,下文会详细的说明。
是什么?可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他事务插入,不许加塞
能干嘛?一个队列中,一次性,顺序性,排他性的执行一系列命令
怎么玩?开启事务使用MULTI,但不见得开启,redis会返回ok代表我收到了,所有命令使用EXEC调用,使用DISCARD放弃事务,表示不玩了
常用的命令有:
WATCH key(keys) 监视一个或多个key,如果在事务执行之前这个或这些key被其他命令所改动,那么事务将被打断
MULTI 标记一个事务块的开始
EXEC 执行所有事务块内的命令
DISCARD 取消事务,放弃执行事务块内的所有命令
UNWATCH 取消WATCH 命令对所有 key 的监控
1:正常执行 MULTI … EXEC
2:放弃事务 DISCARD
3:全体连坐 要么全部成功,要么全部失败,命令错误
4:冤头债主 命令