2

redis-cliサブスクライブの stdout を読み取り、メッセージが受信されたときにメッセージ値とともに何かを実行する bash スクリプトが必要です。

redis-cliサブスクライブは、好きなように引数として渡すことができます

redis-cli --raw subscribe foo

しかし、メッセージを解析できるように、その stdout を何かにパイプする必要があります。ループを使おうと思っwhile read line; doたのですが、1 つの redis メッセージで 3 行かかります。

アップデート

私の最終的な目標は、etcd にキーを設定して新しい redis マスターを発表することです。switch-masterこれは、redis センチネルでチャネルにサブスクライブすることで達成できるはずです。[1] そのメッセージの値は次のようなものである必要があり、それを etcd の値として<master name> <oldip> <oldport> <newip> <newport>設定したいと思います。newip

そのメッセージが受信されたときに実行したいコマンドはetcdctl set /redis/master $NEWIP

[1] http://redis.io/topics/sentinel

4

3 に答える 3

2

redis-cli subscribe の出力は現在バッファリングされているため ( https://github.com/antirez/redis/issues/2074 )、これは現在不可能です。

于 2014-10-22T02:04:49.170 に答える