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被修改、删除时,会打印出相应的事件。