2011-06-29 6 views
4

私はpredisを使って生のredisコマンドを実行する方法を理解しようとしていますが、問題があります。 predisのドキュメントは古くなっています。誰がどのように任意のヒントを持っています https://github.com/nrk/predis/blame/master/CHANGELOGPHPでraw redisコマンドをどのように実行しますか?

:これは、ユーザーが生のRedisのコマンドを実行できるようになる「)rawCommand(」と呼ばれる方法があると言うが、私はそれはもはやサポートされて言わないのchangelogを見つけました生のredisコマンドを実行できますか?

答えて

2

ここに行きます。これは私のために完璧に働いている、と私はそれもその機能

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

彼はこの上wiki pageを持っていた知りませんでした。送信コマンドを探します。

0

私は実際にここで推測していますが、しばらく私はそれを大声で言いませんでした。

lib/Predis/Network/StreamConnection.phpの関数writeCommand()を176行でチェックし、examples/SimpleDebuggableConnection.phpのSimpleDebuggableConnectionで使用します。 @Columが参照しているwikiで述べたように、まだlib/predis /コマンドで定義されていない新しいコマンドを定義する必要があります。

本当に冒険している場合は、96行目のStreamConnectionのprotectedメソッドwriteBytes()をpublicに変更してください。それは(が)http://en.wikipedia.org/wiki/Object_orgyアンチパターンの方向に行くように見えるのwriteBytesを公表、残念ながら

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

でそれを純粋なRedisのを養うためにあなたを有効にする必要があります。

幸運を祈る!

0

簡単です!
は、このクラスを取る:RedisServer
と書き込みを:

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