2
残念ながら、redis-pyライブラリにはMonitorルーチンがないようです。私はredisサーバが受け取ったコマンドをすべて読んで、それらをフィルタリングして、私が興味を持っているものを記録したいと思います。誰かがこれをどうやって行うのか考えていますか?redis-pyを使ってpythonスクリプトでredis MONITORコマンドを模倣するにはどうすればいいですか?
残念ながら、redis-pyライブラリにはMonitorルーチンがないようです。私はredisサーバが受け取ったコマンドをすべて読んで、それらをフィルタリングして、私が興味を持っているものを記録したいと思います。誰かがこれをどうやって行うのか考えていますか?redis-pyを使ってpythonスクリプトでredis MONITORコマンドを模倣するにはどうすればいいですか?
ここに、Pythonでモニターコードを実装するための最小限のコードを示します。
注:
import redis class Monitor(): def __init__(self, connection_pool): self.connection_pool = connection_pool self.connection = None def __del__(self): try: self.reset() except: pass def reset(self): if self.connection: self.connection_pool.release(self.connection) self.connection = None def monitor(self): if self.connection is None: self.connection = self.connection_pool.get_connection( 'monitor', None) self.connection.send_command("monitor") return self.listen() def parse_response(self): return self.connection.read_response() def listen(self): while True: yield self.parse_response() if __name__ == '__main__': pool = redis.ConnectionPool(host='localhost', port=6379, db=0) monitor = Monitor(pool) commands = monitor.monitor() for c in commands : print(c)
エラー処理の任意の並べ替えを行いませんを参照してください。素晴らしい作品!どうもありがとうございます。 – PIntag
ノートブックでこのスクリプトを実行すると、セルが実行され続けているため、回避策を見つけることができません。助言がありますか? –