1. 任务队列
brpop
brpop和rpop区别,brpop如果没有元素则阻塞等待直到加入新元素。
语法:
brpop key1 key2 … seconds
seconds指定阻塞时间,0无穷大
生产者通过lpush加入元素,消费者通过brpop弹出元素,即可实现任务队列。
2. 优先级队列
优先发送重要的消息。
当brpop监控多个key,在所有key无元素阻塞且都有元素的情况下,该命令会按照从左到右的顺序进行消费。所谓的优先级队列借助此特点完成。
范列:
brpop key1 key2 0
重要的通知加入key1即可,普通则加入key2。
3. 发布/订阅
publish
语法:
publish key message
key为频道键名,message为要发送消息。返回值为成功收到该消息的订阅者数量。
subscribe
语法:
subscribe key1 key2 …
示例:
127.0.0.1:6379> subscribe 1
Reading messages… (press Ctrl-C to quit)
1) “subscribe”
2) “1”
3) (integer) 1
如上获得三个返回值,1)表示类型2)3)根据1)类型值的不同而不同,具体如下:
订阅后客户端可能收到三种类型的消息:
a.
subscribe类型,第二个值表示订阅成功的频道名称,第三个值表示当前客户端所订阅的频道总数。
b.
message类型,第二个值生产消息的频道名称,第三个值为消息内容。
c.
unsbscribe,取消订阅。第二个值所取消的频道名称,第三个值当前客户端所订阅的频道总数,第三个值为0则退出订阅状态。
unsbscribe
语法:
unsbscribe key1 key2 …
4. 通配符与订阅
符号 | 含义 |
---|---|
? | 匹配一个字符 |
* | 匹配任意个字符 |
[] | 范围匹配,[ab]匹配a 或b,[a-c]匹配a到c之间任何字母 |
\x | 匹配字符x,如需要匹配?则需转义,\? |
psubscribe
范列:
psubscribe channel*
该命令将订阅所有以channel开头的频道。
注意:
psubscribe 可重复订阅频道,客户端也会收到重复消息。