不幸的是,redis-py 库似乎没有 Monitor 例程。我想阅读redis服务器收到的所有命令,过滤它们,然后记录我感兴趣的命令。有人知道如何做到这一点吗?
问问题
2988 次
2 回答
8
这是一些在 python 中实现监视器代码的最小代码。
笔记 :
- 我改编自 redis-py 中的 PubSub 类。见客户端.py
- 这不会解析响应,但这应该足够简单
- 不进行任何类型的错误处理
导入redis 班长(): def __init__(self, connection_pool): self.connection_pool = 连接池 self.connection = 无 def __del__(self): 尝试: self.reset() 除了: 经过 定义重置(自我): 如果self.connection: self.connection_pool.release(self.connection) self.connection = 无 def 监视器(自我): 如果 self.connection 为无: self.connection = self.connection_pool.get_connection( “监视器”,无) self.connection.send_command("监视器") 返回 self.listen() def parse_response(self): 返回 self.connection.read_response() def 听(自我): 而真: 产生 self.parse_response() 如果 __name__ == '__main__': pool = redis.ConnectionPool(host='localhost', port=6379, db=0) 监视器 = 监视器(池) 命令 = monitor.monitor() 对于 c 命令: 打印(c)
于 2012-05-05T18:24:46.183 回答
1
Now, the redis library already included the monitor support itself. https://github.com/andymccurdy/redis-py/blob/master/redis/client.py#L3422
于 2020-08-26T04:20:41.977 回答