redis事务与管道
事务
Redis事务允许在一次单独的步骤中执行一组命令,Reids事务有两个属性:
- 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
- Redis事务是原子的。原子意味着要么所有的命令都执行,要么都不执行(执行出错也算执行);
事务相关命令如下:
- MULTI: 开启事务,之后的命令会加入命令队列,命令不会立即执行。
- EXEC: 将命令队列中的所有命令顺序执行。执行结束自动关闭事务。
- DISCARD: 取消事务。不会执行事务中命令,并关闭事务。
- WATCH: 监控指定key,如果在WATCH后,EXEC前,指定key的值发生变化,那么事务运行失败。
- UNWATCH: 取消对所有key的监控。
事务示例:银行转账,邓超给宝强转账1万元:
127.0.0.1:6379> set dengchao 60000
OK
127.0.0.1:6379> set wangbaoqiang 200
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> INCRBY dengchao -10000
QUEUED
127.0.0.1:6379> INCRBY wangbaoqiang 10000
QUEUED
127.0.0.1: