predis のようなライブラリを使用せずに、PHP から Redis 呼び出しを行う最良の方法は何ですか?
私は現在
exec
コマンドを使用していますが、より良い方法があるかどうか疑問に思っていました。exec('redis-cli SET foo bar');
第二に、どのようにトランザクションを実行しますか? コマンドラインからそうすることができます...
$ redis-cli redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> INCR FOO QUEUED redis 127.0.0.1:6379> INCR BAR QUEUED redis 127.0.0.1:6379> EXEC 1) (integer) 1 2) (integer) 1
ただし、このようにしようとすると、個々のコマンドは同じトランザクション内ではなく個別に実行され、エラーが発生します
(error) ERR EXEC without MULTI
exec('redis-cli MULTI'); exec('redis-cli INCR FOO'); exec('redis-cli INCR BAR'); exec('redis-cli EXEC');
質問する
4027 次
2 に答える
2
Redis
PHP でこのライブラリに接続して使用するには、2 つの方法があります。
1) http://redis.io/clientsからクライアント側の Redis ライブラリを使用します:- PHP には 5 つの利用可能なものがあり、あなたの裁量と意志でそれらのいずれかを使用できます (それぞれの長所と短所を比較検討してください)。クライアント側のライブラリを配置したら、それは簡単です。たとえば、Predis ライブラリでは
require "predis/autoload.php";
Predis\Autoloader::register();
try {
$redis = new Predis\Client(array(
"scheme" => "tcp",
"host" => "127.0.0.1",
"port" => 6379));
echo "Successfully connected to Redis";
}
catch (Exception $e) {
echo "Couldn't connected to Redis";
echo $e->getMessage();
}
getting
、setting
およびincrement
関数の詳細については、リンクされた github ページを確認してください。
2) 引き続きシェルから使用することを選択した場合はPredis
、サーバー上にシェル (.sh) スクリプトを作成し、上記の 4 つのコマンド (およびトランザクションで実行するコマンド) を以下のようにこのスクリプトに配置します。
#!/bin/bash
#<Your transaction commands go below here>
このファイルの名前を に変更し、コード内の関数<filename>.sh
を使用してこれをシェル コマンドとして実行します。exec
PHP
exec('sh <filename>.sh');
于 2013-03-24T05:14:13.317 に答える