Redis 事务的 discard 命令用于取消 事务,放弃执行事务块内的所有命令。如果正在使用 WATCH 命令监视某个(或某些) key,那么取消所有监视,等同于执行命令 UNWATCH 。
192.168.98.70:6379> discard
总是返回 OK。
O(1)
>= 2.0.0
使用 discard 命令放弃事务执行
127.0.0.1:6379> set name "haicoder" OK 127.0.0.1:6379> set age 109 OK 127.0.0.1:6379> watch name age OK 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET course "redis" QUEUED 127.0.0.1:6379> DISCARD OK 127.0.0.1:6379> exec (error) ERR EXEC without MULTI
首先,我们使用 set 命令,设置了 name 的值为 “HaiCoder” 和 age 的值为 109,接着,我们使用 watch 命令同时监视了 name 的值和 age 的值。
接着,我们使用 multi 命令开始了一个事务,并且在事务里,我们使用 set 命令设置了 course 的值为 “redis”,最后使用 DISCARD 命令取消事务的执行。
最后,我们再次使用 exec 命令执行事务,此时执行事务失败,因为我们已经使用了 DISCARD 命令取消了事务的执行。
Redis 事务的 discard 命令用于取消事务,放弃执行事务块内的所有命令。如果正在使用 WATCH 命令监视某个(或某些) key,那么取消所有监视,等同于执行命令 UNWATCH。