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