我想向PINGRedis 发送一个消息,以检查连接是否正常工作,现在我可以安装了redis- cli,但我现在不想安装curl了。那么我该如何滥用curl呢?基本上,我需要关闭此处发送的内容:
PING
redis- cli
curl
> GET / HTTP/1.1 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: localhost:6379 > Accept: */* > -ERR wrong number of arguments for 'get' command -ERR unknown command 'User-Agent:' -ERR unknown command 'Host:' -ERR unknown command 'Accept:'
User-Agent通过添加-A "",我可以完全摆脱它,但是我找不到其他的东西。知道我该怎么做吗?
User-Agent
-A ""
当您想使用curl时,您需要基于RESP的REST,例如webdis,tinywebdis或turbowebdis。参见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 localhost 6379 +PONG
使用netcat,您必须自己构建RESP协议。参见http://redis.io/topics/protocol
我构建了一个功能强大的bash函数,该函数可以通过TCP任意代价对Redis实例执行ping操作
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
redis-ping localhost