1 Publish / Subscribe 发布/订阅
Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道,每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。
作为例子, 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道channel1 时, 这个消息就会被发送给订阅它的三个客户端:
上面描述了订阅与发布的关系。
2 example 实例演示
发布端:
import redis
#消息推送
import time
r = redis.StrictRedis(host="*****", port=6379, password="*****",db=1)
i = 0
while True:
i += 1
r.publish("first channel", "the i is " + str(i))
print("the i is " + str(i))
time.sleep(1)
订阅端:
import redis,time
#消息订阅
r = redis.StrictRedis(host="****", port=6379, password="****",db=1)
p = r.pubsub()
p.subscribe("first channel")
while True:
message = p.listen()
for i in message:
if i["type"] == 'message':
print i["data"]