代码之家  ›  专栏  ›  技术社区  ›  secmask

有php redis客户端支持持久连接吗?

  •  9
  • secmask  · 技术社区  · 16 年前

    作为标题,我正在寻找一个支持持久连接的php Redis客户机,因为我的web应用程序接收很多请求(每个请求,它都会将一个项目放入Redis队列),并且我希望避免每次请求都创建新的连接。

    5 回复  |  直到 16 年前
        1
  •  7
  •   antirez    16 年前

    不确定是否支持这一点,但您一定要看看Predis和Rediska,这两个(尤其是Predis AFAIK)是最好的PHP Redis客户端。

        2
  •  4
  •   Robert Calhoun    9 年前

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

    大约快10倍(每个连接9.6毫秒对0.83毫秒) connect()

    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版本。)

        3
  •  1
  •   Hanee Park    9 年前

    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

        4
  •  0
  •   robbie613    12 年前

    Predis支持使用它的 PhpiredisStreamConnection persistent=1 自v0.8.0以来的标志语法:

    <?php
    $client = new Predis\Client('tcp://127.0.0.1?persistent=1', array(
        'connections' => array(
            'tcp'  => 'Predis\Connection\PhpiredisStreamConnection',
            'unix' => 'Predis\Connection\PhpiredisStreamConnection',
        ),
    );
    
        5
  •  -2
  •   Andrew McKnight    15 年前

    PHP Redis支持持久连接,因为它使用了用C编写的PHP扩展,从而提供了一种在请求之间共享连接的机制。请看上的文档 popen and pconnect .

    Predis公司 支持持久连接,因为它是100%PHP,并且PHP在每个请求之间不共享任何内容。

    推荐文章