你如何在PHP中运行原始redis命令?

时间:2011-06-29 22:07:14

标签: php redis

我一直在使用predis试图找出如何运行原始redis命令,但我遇到了麻烦。 predis的文档非常过时。它说有一个名为“rawCommand()”的方法允许用户运行原始的Redis命令,但我发现一个更改日志表明它不再受支持: https://github.com/nrk/predis/blame/master/CHANGELOG

有没有人知道如何运行原始redis命令?

4 个答案:

答案 0 :(得分:2)

你走了。这对我来说非常有效,我甚至不知道它有这个功能

$cmdSet = $redis->createCommand('set');
$cmdSet->setArgumentsArray(array('library', 'predis'));
$cmdSetReply = $redis->executeCommand($cmdSet);

他对此有一个wiki page。寻找发送命令。

答案 1 :(得分:0)

我实际上在猜这里,但是让我假装一段时间我没有大声说出来。

在第176行的lib / Predis / Network / StreamConnection.php中查看函数writeCommand(),并通过examples / SimpleDebuggableConnection.php中的SimpleDebuggableConnection使用它。您仍然必须定义尚未在lib / predis / commands中定义的新命令,如@Colum所述的wiki中所述。

如果您真的喜欢冒险,请将第96行的StreamConnection中的受保护方法writeBytes()更改为public。这应该可以让你用

提供纯redis
$redis->getConnection()->writeBytes("*3\r\n$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n")

不幸的是,宣传writeBytes()似乎是http://en.wikipedia.org/wiki/Object_orgy反模式的方向。

祝你好运!

答案 2 :(得分:0)

这很简单!
上课:RedisServer
并写:

$redis = new \Jamm\Memory\RedisServer();
$redis->send_command('set','key',5); //here any raw command

答案 3 :(得分:0)

PHPRedis

variable_name扩展名上,您可以使用以下代码:

git blame

PRedis

phpredis上,您可以使用以下命令:

$redis->rawCommand("count", "a:", 10, "a:");

PRedis-更复杂的方式

phpredis上您可以这样做:

$redis->executeRaw(["count", "a:", 10, "a:"]);