我想要一个 bash 脚本,它读取redis-cli
订阅的标准输出并在收到消息时执行某些操作,以及消息值。
订阅可以作为参数传递给redis-cli
喜欢
redis-cli --raw subscribe foo
但是然后我需要将该标准输出通过管道传输到某些东西,以便我可以解析消息。我考虑过使用while read line; do
循环,但单个 redis 消息占用 3 行。
更新
我的结局是通过在 etcd 上设置一个键来宣布一个新的 redis 主控。这应该可以通过订阅switch-master
redis 哨兵上的频道来实现。[1] 该消息的值应该类似于以下内容<master name> <oldip> <oldport> <newip> <newport>
,我想将其设置newip
为 etcd 上的值。
收到该消息时我想运行的命令是etcdctl set /redis/master $NEWIP