(十二)redis 事务(transaction)
2017-09-19 14:32
225 查看
redis提供了事务,事务就是一个操作集合,保证集合内的操作都是序列化,并且具有原子性的。在执行的过程中,不会受到其他命令的影响。
事务中的命令,只有全部执行,或者全部都不执行。但是redis的实现方式还是有些许不同的。redis的事务是,如果命令集合里面,有某条命令
出现了问题,只有出现问题的命令不会执行,无错误的命令则会继续执行。而且redis的事务并不支持回滚,redis对此的解释是:redis命令执行
错误,只会因为语法错误而产生,而语法的错误是应该在开发过程中发现的,而不是在生产过程中发现。所以个人理解的redis事务,则是一组有效的命令集合。
redis的事务使用流程是:multi开启事务-> enter commends->add commends to queued->exec。就是开启事务,输入命令,将命令
加入执行队列,调用exec进行执行。如此的话产生错误的时候可能有两种情况。1.输入有误的命令,在加入队列的时候就被发现,
那么后记所有的命令都不会执行。2.输入有误的命令,在加入队列的时候未被发现,在执行的时候才被发现。则此命令执行失败,其他命令继续执行。
此处大约有效命令为:
DISCARD:取消事务,放弃执行事务块内的所有命令。
EXEC:执行事务内命令,假如某个key处于被监视状态。那么只有在此key的值符合条件时才执行,不然事务被中断。该命令返回事务内所有结果集。
MULTI:开启事务。
UNWATCH:取消监视。
WATCH:开启监视。
转自:http://www.cnblogs.com/simibaba/p/7264330.html
事务中的命令,只有全部执行,或者全部都不执行。但是redis的实现方式还是有些许不同的。redis的事务是,如果命令集合里面,有某条命令
出现了问题,只有出现问题的命令不会执行,无错误的命令则会继续执行。而且redis的事务并不支持回滚,redis对此的解释是:redis命令执行
错误,只会因为语法错误而产生,而语法的错误是应该在开发过程中发现的,而不是在生产过程中发现。所以个人理解的redis事务,则是一组有效的命令集合。
redis的事务使用流程是:multi开启事务-> enter commends->add commends to queued->exec。就是开启事务,输入命令,将命令
加入执行队列,调用exec进行执行。如此的话产生错误的时候可能有两种情况。1.输入有误的命令,在加入队列的时候就被发现,
那么后记所有的命令都不会执行。2.输入有误的命令,在加入队列的时候未被发现,在执行的时候才被发现。则此命令执行失败,其他命令继续执行。
此处大约有效命令为:
DISCARD:取消事务,放弃执行事务块内的所有命令。
EXEC:执行事务内命令,假如某个key处于被监视状态。那么只有在此key的值符合条件时才执行,不然事务被中断。该命令返回事务内所有结果集。
MULTI:开启事务。
UNWATCH:取消监视。
WATCH:开启监视。
转自:http://www.cnblogs.com/simibaba/p/7264330.html
相关文章推荐
- Redis事务【十二】
- redis-事务-transaction
- Redis命令学习-Transaction(事务)
- Redis--transaction(事务)
- NoSQL之Redis---事务(transaction)命令
- 事务(redis transaction)
- NoSQL之Redis---事务(transaction)Java实现
- Redis命令学习-Transaction(事务)
- Redis事务(Transaction)
- redis命令详解与使用场景举例——Transaction(事务)
- redis事务处理:(error) EXECABORT Transaction discarded because of previous errors.
- redis源码分析之事务Transaction(下)
- Redis事务(transaction)
- redis中事务(Transaction)的使用
- redis 学习手册之事务 transaction 操作
- redis的事务(transaction)详解
- 【事务】spring transaction 注解
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- Redis学习篇(十二)之管道技术
- hibernate 中的session和事务(Transaction)