如何使用php连接到redis但不使用客户端库

时间:2012-03-09 21:38:19

标签: php redis

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

感谢。

2 个答案:

答案 0 :(得分:7)

您可以使用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

答案 1 :(得分:1)

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

您可以轻松引用Predis代码以查看它们的连接方式。

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

这基本上是http://php.net/stream_socket_client的包装器:所以我会引用该页面以获取最详细的信息。

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

希望有所帮助。