我用php-resque来排队我的工作。我正在使用apache工具来测试我的性能。
php-resque做得很好,但是每次它连接到redis时都很慢,这会影响性能(如果没有连接,它会处理~130 Requests/sec,用Resque::enqueue处理~30 requests/sec)。
因此,我想通过exec将数据传递到另一个文件,该文件将在后台连接redis和queus作业,但发现exec的速度要慢得多。
下一个是什么?我怎样才能让它更快地处理红葡萄酒排队。
注意:我使用这个命令来测试性能。
ab -n 1000 -c 10 "http://localhost/index.php"发布于 2017-04-07 12:43:58
我找到了办法。
以下是几个步骤:
在深入挖掘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__更快。
希望这能帮上忙。
https://stackoverflow.com/questions/43277234
复制相似问题