任意のPHP Redisのクライアントのサポート、永続的な接続はありますか?

StackOverflow https://stackoverflow.com/questions/3614948

  •  26-09-2019
  •  | 
  •  

質問

私のWebアプリケーションが要求(それぞれの要求は、それはRedisのキューへの項目を入れましょう)の多くを受け取るので、タイトルとして、私は、持続的接続をサポートするPHPのRedisクライアントを探していると私は避けたいですすべての要求を新しい接続を作成します。

役に立ちましたか?

解決

わからない、これはサポートされていますが、間違いなくこの2つの(特にPredis私の知る限りは)最高のPHP Redisのクライアントが利用可能な、PredisとRediskaを見なければならない場合ます。

他のヒント

PhpRedis の現在の永続的な接続をサポートしています。 pconnect()するとの永続的な接続を行う、PHP 7.0とPhpRedis 3.0を使用して>

for ($i=0;$i<1000;$i++) {
    $redis = new Redis();
    $result = $redis->pconnect('127.0.0.1'); 
    $redis->set("iterator",$i);
    $response=$redis->get("iterator");
    $redis->close();
    unset($redis);
}

connect() に比べ約10倍の速さ(接続あたり9.6ミリ0.83対ミリ秒)であります:

for ($i=0;$i<1000;$i++) {
    $redis = new Redis();
    $result = $redis->connect('127.0.0.1'); 
    $redis->set("iterator",$i);
    $response=$redis->get("iterator");
    $redis->close();
    unset($redis); 
}

注:「この機能は、スレッドのバージョンでは使用できません」。 (私はNTSバージョンを実行するので、私は、Windows上でIISの下で実行しているよ。)

Predisは、v0.8.0以降PhpiredisStreamConnectionフラグ構文でそれのpersistent=1を使用して持続的接続をサポートしています

<?php
$client = new Predis\Client('tcp://127.0.0.1?persistent=1', array(
    'connections' => array(
        'tcp'  => 'Predis\Connection\PhpiredisStreamConnection',
        'unix' => 'Predis\Connection\PhpiredisStreamConnection',
    ),
);

Predisは、永続的な接続をサポートしています。あなただけの1のような永続的なのparamaterを追加する必要があります。

は、

以下のコードを使用することができます
$client = new Predis\Client(array(
   'scheme'    => 'tcp',
   'host'      => '127.0.0.1',
   'port'      => 6379,
   'database'  => 15,
   'persistent'=> 1
));

の代わりに

$client = new Predis\Client('tcp://127.0.0.1:6379?database=15');

あなたはここに接続するためのより多くのパラメータを見つけることができます。   https://github.com/nrk/predis/wiki/Connection-Parameters

それはそれを要求間の接続を共有するための仕組みを提供しますCで書かれたPHP拡張モジュールを使用しているため、

PHP-Redisのは、持続的接続をサポートしています。 のpopenとpconnectするます。

上のドキュメントを参照

Predis <私>できませんのそれは各リクエストの間に100%PHPとPHPを共有するものではありませんので、持続的な接続をサポートしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top