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

Queuing data to redis with php-resque is slow

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

希望这对某人有所帮助。