0
点赞
收藏
分享

微信扫一扫

《微服务实战》 第二十二章 Redis发布订阅、事务

栖桐 2023-06-02 阅读 56

前言

本章节讲解Redis发布订阅、事务。

1、发布订阅

Redis PubSub 模块又称发布订阅者模式,是一种消息传递系统,实现了消息多播功能。发布者(即发送方)发送消息,订阅者(即接收方)接收消息,而用来传递消息的链路则被称为 channel。
在这里插入图片描述

1.1、订阅消息

在这里插入图片描述

1.2、发布者

在这里插入图片描述

1.3、常用命令

命令说明
PSUBSCRIBE pattern [pattern …]订阅一个或多个符合指定模式的频道。
PUBSUB subcommand [argument [argument …]]查看发布/订阅系统状态,可选参数
1) channel 返回在线状态的频道。
2) numpat 返回指定模式的订阅者数量。
3) numsub 返回指定频道的订阅者数量。
PUBLISH subcommand [argument [argument …]]将信息发送到指定的频道。
PUNSUBSCRIBE [pattern [pattern …]]退订所有指定模式的频道。
SUBSCRIBE channel [channel …]订阅一个或者多个频道的消息。
UNSUBSCRIBE [channel [channel …]]退订指定的频道。

每个模式以*作为匹配符

2、事务

Redis 事务具有两个重要特性:

  • 单独的隔离操作事务中的所有命令都会被序列化,它们将按照顺序执行,并且在执行过的程中,不会被其他客户端发送来的命令打断。
  • 不保证原子性在 Redis 的事务中,如果存在命令执行失败的情况,那么其他命令依然会被执行,不支持事务回滚机制。

2.1、事务命令

命令说明
MULTI开启一个事务
EXEC执行事务中的所有命令
WATCH key [key …]在开启事务之前用来监视一个或多个key 。如果事务执行时这些 key 被改动过,那么事务将被打断。
DISCARD取消事务。
UNWATCH取消 WATCH 命令对 key 的监控。

事务可以理解为一个批量执行 Redis 命令的脚本,但这个操作并非原子性操作,也就是说,如果中间某条命令执行失败,并不会导致前面已执行命令的回滚,同时不会中断后续命令的执行(不包含监听 key 的情况)
在这里插入图片描述
事务开启前监听某个key,在事务中尝试修改他,会导致事务中断
在这里插入图片描述

举报

相关推荐

0 条评论