嗨客网搜索
Redis-cli命令
Redis事务unwatch命令

Redis事务unwatch命令教程

Redis 事务的 unwatch 命令用于取消 WATCH 命令对所有 key 的监视。 unwatch 命令可以在 事务 中执行。

如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。因为 EXEC 命令会执行事务,因此 WATCH 命令的效果已经产生了。

而 DISCARD 命令在取消事务的同时也会取消所有对 key 的监视,因此这两个命令执行之后,就没有必要执行 UNWATCH 了。

Redis unwatch命令详解

语法

192.168.98.70:6379> UNWATCH

返回值

总是返回 OK。

时间复杂度

O(1)

可用版本

>= 2.2.0

案例

unwatch移除对key的监视

使用 watch 命令监视多个 key 时,只要一个 key 被修改,则事务执行失败

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> set name "HaiCoder" OK 127.0.0.1:6379> set age 119 OK 127.0.0.1:6379> UNWATCH OK 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET course "redis" QUEUED 127.0.0.1:6379> exec 1) OK 127.0.0.1:6379> get course "redis"

首先,我们使用 set 命令,设置了 name 的值为 “HaiCoder” 和 age 的值为 109,接着,我们使用 watch 命令同时监视了 name 的值和 age 的值,并再次使用 set 命令 name 的值设置为了 “HaiCoder”,将 age 的值设置为 119。

接着,我们使用 unwatch 命令取消了对所有键的监控,并同时使用 multi 命令开始了一个事务,并且在事务里,我们使用 set 命令设置了 course 的值为 “redis”,最后使用 exec 命令执行事务,此时 exec 命令返回了 OK,即事务执行成功。

最后,我们使用 get 命令,获取了 course 的值,我们发现 course 的值为 “redis”,即事务执行成功,因此,使用 watch 命令监视多个 key 之后,我们再次使用 unwatch 取消了对所有 key 的监控。

Redis事务unwatch命令总结

Redis 事务的 unwatch 命令用于取消 WATCH 命令对所有 key 的监视。 unwatch 命令可以在事务中执行。

如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。

嗨客网顶部