No curl, pero no requiere una interfaz HTTP o nc (excelente para algo como un contenedor donde no tiene nc instalado)
exec 3<>/dev/tcp/127.0.0.1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3
Debería darte
+PONG
Puedes leer más sobre lo que está pasando en este fantástico artículo.
Cuando quiera usar curl, necesita REST sobre RESP, como webdis, tinywebdis o turbowebdis. Consulte https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis
$ curl -w '\n' http://127.0.0.1:8888/ping
{"ping":"PONG"}
Sin una interfaz REST para redis, puede usar netcat, por ejemplo.
$ (printf "PING\r\n";) | nc <redis-host> 6379
+PONG
Para redis protegido por contraseña, puede usar netcat de esta manera:
$ (printf "AUTH <password>\r\n";) | nc <redis-host> 6379
+PONG
Con netcat, debe crear el protocolo RESP usted mismo. Consulte http://redis.io/topics/protocol
actualización 2018-01-09
He creado una poderosa función bash que hace ping a la instancia de redis a cualquier costo sobre tcp
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)
}
uso redis-ping localhost