1

我正在使用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"
4

1 回答 1

0

我找到了一个方法。

以下是步骤:

挖掘后php-resque我发现它正在使用fsockopen,这使得它变慢了。

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

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.

希望这可以帮助某人。

于 2017-04-07T12:43:58.740 回答