Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Abuse do cURL para se comunicar com o Redis


Quando você deseja usar curl, precisa de REST sobre RESP, como webdis, tinywebdis ou turbowebdis. Veja https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis
$ curl -w '\n' http://127.0.0.1:8888/ping
{"ping":"PONG"}

Sem uma interface REST para redis, você pode usar o netcat, por exemplo.
$ (printf "PING\r\n";) | nc <redis-host> 6379 
+PONG

Para redis protegido por senha, você pode usar o netcat assim:
$ (printf "AUTH <password>\r\n";) | nc <redis-host> 6379
+PONG

Com o netcat você tem que construir o protocolo RESP sozinho. Veja http://redis.io/topics/protocol

atualização de 09-01-2018


Eu construí uma função bash poderosa que pinga a instância redis a qualquer custo sobre o 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