Python下实现Redis的发布和订阅

redis connecter

vim redisPubSub.py

用来连接redis server并封装了发布与订阅的功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import redis

class RedisPubSubHelper():

def __init__(self):
# redis连接对象
self.__conn = redis.Redis(host='123.57.233.243')

def publish(self, message, channel):
# redis对象的publish方法(发布)
# 往指定的频道中发布信息
self.__conn.publish(channel, message)
return True

def subscribe(self, channel):
# 返回了一个发布订阅的对象
pub = self.__conn.pubsub()
# 订阅到指定的频道上
pub.subscribe(channel)
pub.parse_response()
return pub

listen 2 redis server

vim listen2Redis.py

1
2
3
4
5
6
7
8
import redisPubSub

# 创建一个连接redis的对象(使用发布与订阅模式的redis对象)
r = redisPubSub.RedisPubSubHelper()
# 指定订阅频道
data = r.subscribe('fm155.9')
# 接收频道中的内容,代码会阻塞到这里,直到收到消息
print(data.parse_response())

insert data 2 redis server

vim insert2Redis.py

1
2
3
4
5
6
import redisPubSub

# 创建一个连接redis的对象(使用发布与订阅模式的redis对象)
r = redisPubSub.RedisPubSubHelper()
# 向指定的频道发布消息
r.publish('PolarSnow', 'fm155.9')

demo

依次启动

  1. python listen2Redis.py
  2. python insert2Redis.py

listen2Redis.py 的回显

1
[b'message', b'fm155.9', b'PolarSnow']