Predis上BLPOP的正确语法是什么?

时间:2011-09-28 03:36:58

标签: php syntax redis

我这样做:

$r = new Predis\Client($single_server, $options);
$retval = $r->blpop('queue:query');

但是我收到了这个错误:

ERR wrong number of arguments for 'blpop' command

每当我这样做时

$r = new Predis\Client($single_server, $options);
$retval = $r->blpop('queue:query',0);

我收到错误:

Error while reading line from the server

redis-cli

执行此操作
redis 127.0.0.1:6379> BLPOP queue:query
(error) ERR wrong number of arguments for 'blpop' command
redis 127.0.0.1:6379> BLPOP queue:query 0
1) "queue:query"
2) "hello world"

1 个答案:

答案 0 :(得分:1)

好像是一个错误。 latest版本没有此问题,也显然删除了名称空间:

<?
include_once "Predis.php";

$r = new Predis_Client();
$retval = $r->blpop('queue:query',0);
var_dump($retval);
?> 

我访问该页面时被阻止了。然后,我发出LPUSH queue:query 0,回到页面,得到了这个:

array(2) { [0]=> string(11) "queue:query" [1]=> string(1) "0" }

尽管如此,我建议使用phpredis,它比这个库更快,因为它被编译为php扩展。如果您拥有服务器的权限,那么这是一个不错的选择。