视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Redis事物介绍与应用
2020-11-09 11:07:47 责编:小采
文档


研究reids与使用已经有几个月的时间,中间自己总结了不少文档以及相关资料,接下来时间,会陆续分享一些相关资料,并且介绍其在我

研究reids与使用已经有几个月的时间,中间自己总结了不少文档以及相关资料,接下来时间,会陆续分享一些相关资料,并且介绍其在我们应用中的使用情况。

下面是redis事物的相关介绍(参考redis.io):

一.事物的使用

1.Redis事物通过MULTI命令开始。 这条命令总是返回OK。

2.然后用户可以执行多条指令,redis不会马上执行这些指令,,还只是放入到队列中。

3.当执行exec指令时,所有的指令执行。

4.调用discard指令,将会flush事物队列,并且退出事物。

如下:

redis 127.0.0.1:6379> multi

OK

redis 127.0.0.1:6379> set foo 1

QUEUED

redis 127.0.0.1:6379> incr foo

QUEUED

redis 127.0.0.1:6379> incr foo

QUEUED

redis 127.0.0.1:6379> exec

1) OK

2) (integer) 2

3) (integer) 3

从以上会话中能看到multi命令返回的回复是一个数组,每个元素即是事物中每条指令的回复,并且跟指令发布的顺序一样。当redis连接在multi请求下,所有的命令回复都是queued,除非这条指令的语句法不正确。而一些指令语法正确,但执行阶段出错也是允许的。

如以下

redis 127.0.0.1:6379> multi

OK

redis 127.0.0.1:6379> set t 13

QUEUED

redis 127.0.0.1:6379> lpop t

QUEUED

redis 127.0.0.1:6379> exec

1) OK

2) (error) ERR Operation against a keyholding the wrong kind of value

对于这种err,需要客户端给予合理的提示。

需要注意的是,所有在队列中的指令都会被执行,redis不会终止指令的执行。

二.取消队列指令
Discard为取消命令队列。可以终断一个事物。不会有命令会被执行,并且连接的状态是正常的。

如:

> SET foo 1

OK

> MULTI

OK

> INCR foo

QUEUED

> DISCARD

OK

> GET foo

"1"

下载本文
显示全文
专题