计算机网络/计算机科学与应用/系统/运维/开发

Redis 事务的处理

什么是事务?

可以一次执行多个命令,并且带有以下三个重要保证:

批量操作在发送exec命令前被放入对列缓存

收到exec命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行

在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中


开始事务

命令入队

执行事务


命令:MULTI

语法:MUITI

功能:标记一个事务的开始

返回值:返回OK

终端1:
127.0.0.1:6379> set account 1
OK
127.0.0.1:6379> get account
"1"


终端2:
127.0.0.1:6379> get account
"1"
127.0.0.1:6379> 
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> incrby account 500
QUEUED
127.0.0.1:6379(TX)> incrby account 500
QUEUED


命令:EXEC

语法:EXEC

功能:执行所有事务块的命令

返回值:

事务块内所有命令的返回值,按命令执行的先后顺序排列

当操作被打断时,返回空值nil


终端2:
127.0.0.1:6379(TX)> exec
1) (integer) 501
2) (integer) 1001


终端1:
127.0.0.1:6379> get account
"1001"



命令:DISCARD

语法:DISCARD

功能:取消事务,放弃执行事务块内的所有命令

返回值:OK


命令:WATCH

语法:WATCH key [key...]

功能:监视一个或多个key ,如果在事务执行之前这个或这些key被其他命令所改动,

那么事务将被打断

返回值:OK


命令:UNWATCH

语法:UNWATCH

功能:取消WATCH命令对所有key的监视,如果在执行watch命令之后,exec命令

或discard 命令先被执行的话,那么就不需要在执行unwatch 了

返回值:ok


努力的意义,不在于一定会让你取得多大的成就,只是让你在平凡的日子里,活得比原来的那个自己更好一点。

评论

^