使用 php-resque 将数据排队到 redis 很慢
Queuing data to redis with php-resque is slow
我正在使用 php-resque 来排队我的工作。我正在使用 apache ab 工具来对我的性能进行基准测试。
php-resque
做得很好,但是每次我连接到影响性能的 redis 时它都很慢(没有连接它处理 ~130 Requests/sec
和 Resque::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
.
快
希望这对某人有所帮助。
我正在使用 php-resque 来排队我的工作。我正在使用 apache ab 工具来对我的性能进行基准测试。
php-resque
做得很好,但是每次我连接到影响性能的 redis 时它都很慢(没有连接它处理 ~130 Requests/sec
和 Resque::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
.
希望这对某人有所帮助。