目 录CONTENT

文章目录

Redis事务命令

Jinty
2023-12-17 / 0 评论 / 0 点赞 / 11 阅读 / 2104 字

Redis从2.0版本开始支持事务。自2.0版本起,Redis引入了WATCH, EXEC, DISCARD, MULTI等命令,使得用户能够将一系列命令打包成一个事务进行执行。

WATCH

WATCH命令用于监视一个或多个键,如果在事务执行之前这些键发生了变化,事务将被取消。使用方式如下:

WATCH key [key ...]

WATCH命令可以被调用多次,一个WATCH 命令可以监控多个key。WATCH命令调用即启动监控功能,从WATCH命令开始点到执行EXEC命令终止。一旦EXEC被调用,所有的键都将不被监视,无论所讨论的事务是否被中止。关闭客户端连接也会触发所有的键被取消监视。

WATCH命令给事务提供check-and-set (CAS) 机制。被WATCH的key被持续监控,如果key在EXEC命令执行前有改变,那么整个事务被取消,EXEC返回null表示事务没有成功。

MULTI

MULTI命令用于开启一个事务。

使用方式如下:

MULTI

EXEC

EXEC命令用于执行事务中的所有命令。如果事务中的任何一个命令执行失败,整个事务都将被取消。使用方式如下:

EXEC

DISCARD

DISCARD命令用于取消一个事务。使用方式如下:

DISCARD

Redis事务操作

使用示例:

WATCH mykey
MULTI
INCR mykey
EXEC

上述代码实现了对mykey键的原子自增操作。在MULTI和EXEC之间,如果mykey键的值发生了变化,事务将被取消。如果没有发生变化,INCR mykey命令将被添加到事务中,然后通过EXEC命令执行整个事务。如果事务执行成功,mykey键的值将被自增。

0

评论区