Pas curl, mais ne nécessite pas d'interface HTTP ou nc (idéal pour quelque chose comme un conteneur où vous n'avez pas installé nc)
exec 3<>/dev/tcp/127.0.0.1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3
Devrait vous donner
+PONG
Vous pouvez en savoir plus sur ce qui se passe dans cet article fantastique.
Lorsque vous souhaitez utiliser curl, vous avez besoin de REST sur RESP, comme webdis, tinywebdis ou turbowebdis. Voir https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis
$ curl -w '\n' http://127.0.0.1:8888/ping
{"ping":"PONG"}
Sans interface REST pour redis, vous pouvez utiliser netcat par exemple.
$ (printf "PING\r\n";) | nc <redis-host> 6379
+PONG
Pour redis protégé par mot de passe, vous pouvez utiliser netcat comme ceci :
$ (printf "AUTH <password>\r\n";) | nc <redis-host> 6379
+PONG
Avec netcat, vous devez créer vous-même le protocole REEE. Voir http://redis.io/topics/protocol
mise à jour 2018-01-09
J'ai construit une puissante fonction bash qui ping l'instance redis à tout prix sur 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)
}
utilisation redis-ping localhost