【问题标题】:Queuing data to redis with php-resque is slow使用 php-resque 将数据排队到 redis 很慢
【发布时间】:2017-04-07 11:41:07
【问题描述】:

我正在使用php-resque 来排队我的工作。我正在使用 apache ab 工具来衡量我的性能。

php-resque 做得很好,但它每次连接到 redis 时都会很慢,这会影响性能(没有连接它处理 ~130 Requests/secResque::enqueue 它是 ~30 requests/sec)。

所以我想通过exec 将数据传递到另一个文件,这将在后台连接redis 和队列作业,但发现exec 慢得多。

接下来是什么?我怎样才能让它更快地处理redis排队。

注意:我正在使用此命令来测试性能。

ab -n 1000 -c 10 "http://localhost/index.php"

【问题讨论】:

    标签: php apachebench redis-server php-resque


    【解决方案1】:

    我找到了办法。

    步骤如下:

    挖掘php-resque后发现它使用的是fsockopen,这让它变慢了。

    然后我在我的 ubuntu 机器上安装了php-redis。通过执行以下命令。

    sudo apt-get install php5-redis
    

    然后通过以下方式重新启动apache服务器:

    sudo service apache2 restart
    

    然后通过以下几行代码连接redis。

    <?php 
    $redis = new Redis();
    $result = $redis->connect('127.0.0.1'); 
    $id = md5(uniqid('', true));
    $redis->set("resque:job:$id",$args);
    $redis->close();
    unset($redis);
    

    在此代码测试之后,(~70 requests/second) 的性能比以前提高了一倍。

    注意:这里pconnect代表持久连接,比connect快。

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2021-01-18
      • 2020-05-17
      • 2019-07-26
      相关资源
      最近更新 更多