使用php-resque将数据排队到redis很慢

时间:2017-04-07 11:41:07

标签: php apachebench redis-server php-resque

我正在使用php-resque排队工作。而且我正在使用apache ab工具来衡量我的表现。

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

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

下一步是什么?如何让它更快地处理redis排队。

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

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

1 个答案:

答案 0 :(得分:0)

我发现了一种方法。

以下是步骤:

挖掘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

希望这有助于某人。