GNU/Linux >> Linux の 問題 >  >> Linux

cURL を悪用して Redis と通信する

curl ではありませんが、HTTP インターフェースや nc は必要ありません (nc がインストールされていないコンテナーのようなものに最適です)

exec 3<>/dev/tcp/127.0.0.1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3

あなたに与えるべきです

+PONG

何が起こっているかについては、このすばらしい記事で詳しく読むことができます。


curl を使用する場合は、webdis、tinywebdis、turbowebdis などの REST over RESP が必要です。 https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis を参照

$ curl -w '\n' http://127.0.0.1:8888/ping
{"ping":"PONG"}

redis 用の REST インターフェースがなくても、たとえば netcat を使用できます。

$ (printf "PING\r\n";) | nc <redis-host> 6379 
+PONG

パスワードで保護された redis の場合、次のように netcat を使用できます:

$ (printf "AUTH <password>\r\n";) | nc <redis-host> 6379
+PONG

netcat では、RESP プロトコルを自分で構築する必要があります。 http://redis.io/topics/protocol を参照

2018 年 1 月 9 日更新

任意のコストで tcp を介して redis インスタンスに ping を実行する強力な bash 関数を作成しました

    function redis-ping() {
            # ping a redis server at any cost
            redis-cli -h $1 ping 2>/dev/null || \
                    echo $((printf "PING\r\n";) | nc $1 6379 2>/dev/null || \
                    exec 3<>/dev/tcp/$1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3)
    }

使い方 redis-ping localhost


Linux
  1. cURLでヘッダー情報を取得する

  2. Wget で HTTP PUT を実行するにはどうすればよいですか?

  3. Linux:インストールがどのオプションで構成およびコンパイルされたかを知ることは可能ですか?

  1. Dockerを使用してRedisでNextcloudをセットアップする

  2. Ddでバイナリにパッチを適用しますか?

  3. これらの例を使用して、LinuxでCURLコマンドを使用する方法を学ぶ

  1. Ubuntu12.04にRedisとNginxを使用してNodeBBをインストールしてセットアップする

  2. 例を含む cURL コマンドのチュートリアル

  3. cURL で HTTP リクエストを実行する (PROXY を使用)