Как вы запускаете необработанные команды redis в PHP? - PullRequest
4 голосов
/ 30 июня 2011

Я использовал predis, чтобы попытаться выяснить, как запускать необработанные команды redis, но у меня возникли проблемы.Документация для predis крайне устарела.В нем говорится, что существует метод с именем «rawCommand ()», который позволяет пользователю запускать необработанные команды Redis, но я обнаружил журнал изменений, в котором говорится, что он больше не поддерживается: https://github.com/nrk/predis/blame/master/CHANGELOG

У кого-нибудь естьнамеки на то, как я могу запустить необработанные команды redis?

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Вот, пожалуйста. Это отлично сработало для меня, и я не знал, что даже имел эту функцию

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

У него есть вики-страница . Ищите отправку команд.

0 голосов
/ 05 июля 2011

Это просто!
Возьми этот класс: RedisServer
и напиши:

$redis = new \Jamm\Memory\RedisServer();
$redis->send_command('set','key',5); //here any raw command
0 голосов
/ 30 июня 2011

Я на самом деле угадываю здесь, но давайте на некоторое время представим, что я не сказал этого вслух.

Проверьте функцию writeCommand () в lib / Predis / Network / StreamConnection.php в строке 176 ииспользуйте его через SimpleDebuggableConnection в examples / SimpleDebuggableConnection.php.Вам все еще нужно определить новые команды, которые еще не определены в lib / predis / commands, как упоминалось в вики, на которую ссылается @Colum.

Если вы действительно чувствуете приключения, измените защищенный метод writeBytes () в StreamConnection на линии 96 для общего доступа.Это должно позволить вам передать его в чистом виде с помощью

$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 анти-паттерна.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...