Redis的事务

Redis的事务

redis事务特性

单独的隔离操作:redis的事务中所有的命令都是按照序列化执行的。在一个客户端执行事务的过程中,不再接受任何客户端的请求,

不保证原子性:如果有一条执行失败,其后的仍然会被执行,不会回滚。

没有隔离级别:因为redis事务没提交之前都是到事务队列,没提交前的任何命令都不会被实际的执行,不像mysql一样事务内命令实际上也是执行了对数据库的操作,有问题再回滚。所以redis的事务也不存在事务内查询要看到事务内更新,事务外查询不能看到这种问题了。

事务的使用

使用 MULTI 命令进入事务模式,接下来输入的所有的命令都会被放进事务队列,暂时不执行,直到执行了 EXEC 命令,所有的事务才会一次性执行,如果执行了discard命令,所有的事务都会被放弃。因此事务有三个阶段,开启事务,命令入队,执行事务

事务的执行

redis事务的执行存在两种情况,一种执行失败的语句被跳过,其余的语句仍然执行,一种是存在出错的语句,整个事务被放弃执行

情况二:语法没有问题 但是适用对象有问题 例如对字符串进行数字加减法操作,会跳过执行失败的语句,执行其他可以执行成功的语句

情况一:某条语句执行的语法有问题,exec语句报错,所有的语句都不执行

posted @ 2020-04-24 10:35  穿黑风衣的牛奶  阅读(183)  评论(0编辑  收藏  举报