滥用cURL与Redis通信

我想向PINGRedis 发送一个消息,以检查连接是否正常工作,现在我可以安装了redis-

cli,但我现在不想安装curl了。那么我该如何滥用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 "",我可以完全摆脱它,但是我找不到其他的东西。知道我该怎么做吗?

回答:

当您想使用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

更新2018-01-09

我构建了一个功能强大的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

以上是 滥用cURL与Redis通信 的全部内容, 来源链接: utcz.com/qa/413210.html

回到顶部