redis 由浅入深 之进阶(发布与订阅、事务、连接和Reids服务器)
Redis发布与订阅:
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
Redis 发布与订阅相关指令:
- psubscribe(pattern, 匹配通道(待会详解)):订阅一个或多个符合给定模式的通道。
- pubsub(channel):查看订阅与发布系统状态
- publish(channel, content):将指定信息发布到指定通道中
- punsubscribe(channel,匹配通道):退订所有符合模式的指定通道
- subscribe(channel):订阅指定通道
- unsubscribe(channel):退订指定通道
实列代码:
重点:redis 匹配模式语法:
每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类。
Redis 事务:
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
- 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
- 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
- 开始事务。
- 命令入队。
- 执行事务。
Redis事务相关指令:
- discard:取消事务,放弃执行事务内包含的指令。
- exec:执行事务中相关指令
- multi:标记一个事务开始
- unwatch:取消watch指令,对所有key的监视。
- watch(key):用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
实列代码:
Redis 连接:
Redis 连接命令主要是用于连接 redis 服务。
Redis 连接相关指令:
- auth(password):用于检测给定的密码和配置文件中的密码是否相符。
- echo(message):用于打印给定的字符串
- ping:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
- quit:用于关闭与当前客户端与redis服务的连接。一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。
- select(index):用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值.
Redis 连接服务器就不做相关Demo 的演示,各位码农可以自己多多动手。
今天的内容已经讲解的比较多,还剩下Redis 服务器,我准备在下一章节中进行讲解。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。