redis实现消息队列&redis发布订阅&redis监听key
Redis可以通过发布/订阅模式实现消息队列,同时可以通过KEYS
命令和notify-keyspace-events
配置来监控key的变化。
发布订阅示例:
import redis
# 连接Redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 发布消息
channel = 'my_channel'
message = 'Hello, World!'
r.publish(channel, message)
# 订阅消息
def callback(message):
print(f"Received: {message['data']}")
# 创建一个新的订阅对象
pubsub = r.pubsub()
pubsub.subscribe(**{channel: callback})
pubsub.run_in_thread()
监控key示例:
首先,确保Redis配置了合适的notify-keyspace-events
。例如,如果你想监控所有类型的key事件,可以在Redis配置文件中设置:
notify-keyspace-events KEA
然后,你可以使用psubscribe
方法来监听所有键空间通知:
import redis
# 连接Redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 创建一个新的订阅对象
pubsub = r.pubsub()
pubsub.psubscribe('__keyspace@0__:*')
# 处理接收到的通知
for message in pubsub.listen():
if message['type'] == 'pmessage':
print(f"Key event: {message['data']}")
在这个例子中,__keyspace@0__:*
表示监听数据库0中所有key的事件。当key被修改、删除时,会打印出相应的事件。
评论已关闭