文章目录
前言
体能状态先于精神状态,习惯先于决心,聚焦先于喜好。
Redis 官方完整的命令行文档
本文实验 Redis 版本为3.2.100
在Redis 2.6版本及之前,有些命令是不被支持的,建议读者安装2.6之后的版本。
命令行中 key 表示 key的name,在实际使用中对应 key的名字。[] 表示被其包括的命令可有可无。
命令行中 value 存储的值 。
对于增、减操作,key不存在于 Redis 时,默认创建一个value为 0 的 key。
append 命令,key不存在于 Redis 时,默认创建一个空串。
Redis 计数默认从左开始,以0为基数。
Redis 订阅发布 传递二进制消息,客户端默认中文显示的不是中文
Redis 发布与订阅简介
Redis 发布与订阅 又被称为 pub/sub
订阅者订阅频道,发送者向频道发送二进制字符串消息
订阅者:listener
发送者:publisher
频道:channel
二进制字符串消息:binary string message
Redis 发布订阅功能的潜在风险
- 在旧版本Redis中,订阅者一旦订阅消息但未来得及消费,会造成Redis输出缓冲区的消息积压,这可能导致Redis速度变慢,甚至崩溃。在新版本中,Redis 会自动断开不符合 client-output-buffer-limit pubsub 配置选项的客户端。
- Redis 的订阅发布语义无法确保消息的可靠传输,比如网络中断,或者消费未完成客户端出现异常,都会造成消息的丢失。
常用命令行
PUBLISH channel message 向频道发消息
频道如果不存在Redis会自动创建
127.0.0.1:6379> publish c1 1234
(integer) 1
SUBSCRIBE channel [···] 订阅一个(多个)频道
下面订阅频道 c1,等到有消息,就会自动输出
由于是二进制消息,中文显示的不是中文
127.0.0.1:6379> subscribe c1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
UNSUBSCRIBE [channel[channel ···]]退订一个或多个频道
如果没有指定具体频道,则退订所有频道
下面的例子退订频道 c1
127.0.0.1:6379> unsubscribe c1
1) "unsubscribe"
2) "c1"
3) (integer) 0
高级命令
PSUBSCRIBE pattern [pattern ···] 订阅与给定模式匹配的所有频道
比如下面匹配 c* 就是任何以 c 开头的频道都会被订阅
127.0.0.1:6379> psubscribe c*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "c*"
3) (integer) 1
1) "pmessage"
2) "c*"
3) "c1"
4) "1"
1) "pmessage"
2) "c*"
3) "c2"
4) "2"
PUNSUBSCRIBE [pattern [pattern ···]] 退订给定的模式
如果没有给定任何模式(注意不是没有匹配的模式),则退订所有频道
127.0.0.1:6379> punsubscribe c*
1) "punsubscribe"
2) "c*"
3) (integer) 0
本文深入讲解Redis的发布与订阅功能,包括基本概念、常用命令、潜在风险及高级应用。通过实例演示如何使用PUBLISH、SUBSCRIBE等命令进行消息传递。
1909

被折叠的 条评论
为什么被折叠?



