当前位置: 首页 > 面试题库 >

滥用cURL与Redis通信

燕光熙
2023-03-14
问题内容

我想向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

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



 类似资料:
  • 我有一个整数列表(当前),我想检查这个列表是否包含list expected中的所有元素,而不是list notExpected中的一个元素,因此代码如下所示: 这么久这么好。但当我加上 给了我正确的答案,但我认为我可以很容易地使用hamcrest匹配器。我使用的是junit 4.11和hamcrest 1.3

  • 大家都知道英文中be动词+过去分词的组合,表示的是被动的意思,所以翻译时也多直接表达为“被xx”。一般情况下这样没有大问题,但我们再三说过,“条件反射式”的翻译,是翻译中的大忌。被动语态的处理也是如此,遇到被动语态就翻译为“被xx”,就会生出许多别扭,不信可以看下面几个句子: 我被邀请来参加这台晚会 这件事情被登上了报纸 此事被讨论之后 他被命令去执行任务 这本书被许多人高度评价 在这几个句子中,

  • 问题内容: 我在redis中有一个hach集,如下所示。 如果我叫hgetall abcd,它将为我提供哈希中的所有字段。我的目标是仅获取以“ rec.number”开头的哈希集的那些字段。当我打电话喜欢 它给我的结果像 有没有一种方法可以只检索那些以我期望的模式开头的键的数据?我只想检索那些键,因为我的数据集包含许多其他不相关的字段。 问题答案: HMGET在字段名称中不支持通配符。您可以为此使

  • 问题内容: 访问REST API时,这两段代码有何不同? 和 从以下两个方面判断,它们都产生相同的结果 问题答案: 是一个简单的螺丝刀。非常适合简单的GET请求,其中标头,HTTP请求方法,超时,cookiejar,重定向和其他重要内容无关紧要。 带有流上下文或带有setopt的cURL 的Powerdrill带有您可以想到的每一个细节。

  • 当通过PHP发出curl请求时,curl得到“无法连接到主机”。当我转储curl信息时,不是请求服务器的ip。 这在我的测试服务器上运行良好,但在生产环境中不起作用。在生产服务器上,这是我得到的响应: 大堆 7. 无法连接到主机数组(23){["url"]=

  • 问题内容: 我一直在为它构建一个Rest API,并且一直在使用命令行中的curl对它进行测试,这对于CRUD非常容易 我可以从命令行成功进行这些调用 上面的调用很容易从命令行进行,并且可以在我的api上正常使用,但是现在我想使用PHP创建curl。如您所见,我将数据作为json字符串传递。我已经阅读了很多,我想我可能可以进行POST并包含POST字段,但是我无法找出如何通过GET传递http正文