如何在不使用客户端库的情况下使用php连接到redis


How can I connect to redis using php but without use a client library

我想知道从零开始使用php连接到redis的方法是什么(不使用像predis这样的客户端)?

谢谢。

您可以使用fsockopen进行连接,并通过发送原始命令和读取服务器响应进行通信:

$c = fsockopen('127.0.0.1', 6379, $errCode, $errStr);
$rawCommand = "*2'r'n'$4'r'nEcho'r'n'$12'r'nhello world!'r'n";
fwrite($c, $rawCommand);
$rawResponse = fgets($c);
echo $rawResponse; // $12
$rawResponse = fgets($c);
echo $rawResponse; // hello world!

要以这种方式使用它,您应该熟悉Redis协议:http://redis.io/topics/protocol

使用原始TCP连接是一种方法。

你可以很容易地参考Predis代码,看看它们是如何连接的。

https://github.com/nrk/predis/blob/v0.7/lib/Predis/Network/StreamConnection.php::tcpStreamInitializer()

这基本上是http://php.net/stream_socket_client:所以我会参考那个页面来获得最详细的信息。

如果我没有错的话,这就像在命令行中建立TELNET连接并以这种方式与Redis接口一样。

希望能有所帮助。