Redis的事务

来源:互联网 发布:云计算的概念是什么 编辑:程序博客网 时间:2024/05/29 01:56

Redis的事务是可以一次执行多个命令,是一组命令的集合。它是在一个队列中,一次性并按照顺序,排他性的执行一系列命令。
常用的命令:discard(放弃)、exec(执行)、multi(开启)、unwatch(放弃监听)、watch(监听)
redis对事务是部分支持

1. 正常执行
用multi开启事务,并用exec执行期间所有的Redis命令,正常的执行所有执行的多个命令。
2. 放弃事务
用multi开启事务,并用discard执行期间所有的Redis命令,放弃期间执行的多个命令。
3. 全体连坐
只要一个命令执行错误,则所有的命令都提交错误。这种情况是在开启事务之后,期间输入的命令有错,则提交的所有命令都不会成功。
4. 冤头债主
执行命令只有错误的命令执行不成功。这种是在输入的命令没有出错(如incr一个字符,运行的时候不会出错,然是最后提交执行的时候出错),这种情况则只会影响到这条命令的执行,其他命令还是正确执行。
5. watch监视
表锁:把整个表都锁起来,一致性好,但是并发性差。
行锁:对数据库表中的行锁起来,一致性不好,并发性好。
客观锁:对行数据进行锁起来,每条行数据都添加一个版本号,如果数据中的版本号和自己取得数据的版本号不一致,则首先取得最新数据,然后再修改。
悲观锁:认为在修改期间,会对数据进行修改。因此采用表锁方式。

原创粉丝点击