10

タイトルとして、永続的な接続をサポートするphp Redisクライアントを探しています。これは、Webアプリケーションが多くのリクエストを受信し(リクエストごとに、アイテムがRedisキューに入れられる)、新しい接続の作成を避けたいためです。すべてのリクエスト。

4

5 に答える 5

7

これがサポートされているかどうかはわかりませんが、PredisとRediskaを確認する必要があります。この2つ(特にPredis AFAIK)は、利用可能な最高のPHPRedisクライアントです。

于 2010-09-02T11:34:40.173 に答える
4

PhpRedisは現在、持続的接続をサポートしています。PHP7.0とPhpRedis3.0を使用して、次のpconnect()ように永続的な接続を確立します。

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); 
}

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

于 2016-09-19T19:19:26.367 に答える
2

Predisは持続的接続をサポートしています。永続的なパラメータを1として追加する必要があります。

以下のコードを使用できます

$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

于 2017-07-24T12:55:25.357 に答える
0

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',
    ),
);
于 2014-02-24T00:21:02.213 に答える
-2

PHP-Redisは、リクエスト間で接続を共有するためのメカニズムを提供するCで記述されたphp拡張機能を使用するため、永続的な接続をサポートします。popenとpconnectのドキュメントをご覧ください。

Predisは100%PHPであり、PHPは各リクエスト間で何も共有しないため、永続的な接続をサポートできません。

于 2011-01-28T19:52:08.563 に答える