Redis
 sql >> Datenbank >  >> NoSQL >> Redis

cURL missbrauchen, um mit Redis zu kommunizieren

Wenn Sie curl verwenden möchten, benötigen Sie REST über RESP, wie webdis, tinywebdis oder turbowebdis. Siehe https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis

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

Ohne eine REST-Schnittstelle für Redis können Sie beispielsweise netcat verwenden.

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

Für passwortgeschützte Redis können Sie netcat wie folgt verwenden:

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

Bei netcat müssen Sie das RESP-Protokoll selbst erstellen. Siehe http://redis.io/topics/protocol

Aktualisierung 09.01.2018

Ich habe eine mächtige Bash-Funktion gebaut, die die Redis-Instanz um jeden Preis über TCP anpingt

    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)
    }

Verwendung redis-ping localhost