我正在使用php-resque排队工作。而且我正在使用apache ab工具来衡量我的表现。
php-resque
做得很好,但每次我连接到redis会影响性能时会很慢(没有连接它会处理~130 Requests/sec
而Resque::enqueue
就会~30 requests/sec
) 。
所以我想通过exec
将数据传递到另一个文件,后者将在后台连接redis和queus作业,但发现exec
速度慢得多。
下一步是什么?如何让它更快地处理redis排队。
注意:我正在使用此命令来测试性能。
ab -n 1000 -c 10 "http://localhost/index.php"
答案 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
。
希望这有助于某人。