redis事务的用法

86次阅读
没有评论

共计 980 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 redis 事务的用法,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Redis 事务

MULTI, EXEC, DISCARD and WATCH 是 Redis 事务的基础。用来显式开启并控制一个事务,它们允许在一个步骤中执行一组命令。并提供两个重要的保证:

● 事务中的所有命令都会被序列化并按顺序执行。在执行 Redis 事务的过程中,不会出现由另一个客户端发出的请求。这保证 命令队列 作为一个单独的原子操作被执行。

● 队列中的命令要么全部被处理,要么全部被忽略。EXEC 命令触发事务中所有命令的执行,因此,当客户端在事务上下文中失去与服务器的连接,

● 如果发生在调用 MULTI 命令之前,则不执行任何 commands;

● 如果在此之前 EXEC 命令被调用,则所有的 commands 都被执行。

同时,redis 使用 AOF(append-only file),使用一个额外的 write 操作将事务写入磁盘。如果发生宕机,进程奔溃等情况,可以使用 redis-check-aof tool 修复 append-only file,使服务正常启动,并恢复部分操作。(推荐:《Redis 视频教程》)

用法

使用 MULTI 命令显式开启 Redis 事务。该命令总是以 OK 回应。此时用户可以发出多个命令,Redis 不会执行这些命令,而是将它们排队。EXEC 被调用后,所有的命令都会被执行。而调用 DISCARD 可以清除事务中的 commands 队列并退出事务。

以下示例以原子方式,递增键 foo 和 bar。

MULTI
 INCR foo
QUEUED
 INCR bar
QUEUED
 EXEC
1)(整数)1
2)(整数)1

从上面的命令执行中可以看出,EXEC 返回一个数组,其中每个元素都是事务中单个命令的返回结果,而且顺序与命令的发出顺序相同。

当 Redis 连接处于 MULTI 请求的上下文中时,所有命令将以字符串 QUEUED(从 Redis 协议的角度作为状态回复发送)作为回复,并在命令队列中排队。只有 EXEC 被调用时,排队的命令才会被执行,此时才会有真正的返回结果。

关于 redis 事务的用法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-03发表,共计980字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)