我一直在使用predis试图找出如何运行原始redis命令,但我遇到了麻烦。 predis的文档非常过时。它说有一个名为“rawCommand()”的方法允许用户运行原始的Redis命令,但我发现一个更改日志表明它不再受支持: https://github.com/nrk/predis/blame/master/CHANGELOG
有没有人知道如何运行原始redis命令?
答案 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)
在variable_name
扩展名上,您可以使用以下代码:
git blame
在phpredis
上,您可以使用以下命令:
$redis->rawCommand("count", "a:", 10, "a:");
在phpredis
上您可以这样做:
$redis->executeRaw(["count", "a:", 10, "a:"]);