13.25. Redis 事务相关的命令有哪几个

发布于 2023-10-06 21:52:51 字数 1111 浏览 26 评论 0

Redis 事务相关的命令有以下几个:

  1. MULTI:标记一个事务块的开始
  2. EXEC:执行所有 MULTI 开始的事务块内的命令
  3. DISCARD:取消事务,放弃所有 MULTI 开始的事务块内的命令
  4. WATCH:监视一个或多个键,如果在事务执行之前这些键被其他客户端修改了,执行事务就会失败
  5. UNWATCH:取消所有 WATCH 命令对键的监视

在 Redis 事务中,多个命令被组合成一个事务块,并按序执行,且在执行期间其他客户端的请求不会干扰 Redis 事务的执行。当 EXEC 命令被执行时,Redis 将会对所有连接的客户端执行先前提交的事务内的所有命令。

Redis 事务块与传统数据库中的事务概念并不相同,Redis 事务块本身并不保证原子性,但经过特殊处理后,事务块内的所有命令要么全部执行,要么全部不执行。

以下是一些 Redis 事务相关的命令示例:

1、使用 MULTI 和 EXEC 命令提交一个简单的事务块:

MULTI
SET key1 value1
SET key2 value2
EXEC

上述操作将会连续执行两个 SET 命令,这两个命令被标记为一个事务块,最后通过 EXEC 命令提交执行。

2、使用 WATCH 命令监视键,模拟 CAS(Check And Set)行为:

WATCH key1
val1 = GET key1
val1 = val1 + 1
MULTI
SET key1 val1
EXEC

上述操作通过 WATCH 命令对键 key1 进行监视,然后对 key1 进行一次 GET 操作,紧接着执行加 1 操作,再标记一个事务块并在其中执行一次 SET 操作,最后提交事务块。

如果在执行操作期间,有其他客户端修改了 key1 的值,此时执行事务块将失败并返回一个空列表。

3、使用 DISCARD 命令取消事务块:

MULTI
SET key3 value3
DISCARD

上述操作使用 MULTI 命令标记一个事务块,随后执行了一条 SET 命令。然后使用 DISCARD 命令取消当前事务块,此时 SET 命令不会执行,key3 不会被设置。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

惯饮孤独

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文