【发布时间】:2016-05-30 08:46:25
【问题描述】:
我正在尝试将 redis scan 与 laravel 一起使用。我可以发出一个返回 10 个键的请求,但我希望循环直到返回所有键。我不确定如何用 laravel 做到这一点。目前我有
$test = Redis::scan(0, 'match', '*keypattern*');
我不知道是否有“laravel”的方式来做到这一点。
编辑:
我使用 composer 导入 predis/predis 并让它工作
use Predis\Collection\Iterator;
use Predis;
...
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => 'localhost',
'port' => 6379,
]);
foreach (new Iterator\Keyspace($client, '*keypattern*') as $key) {
$arr[] = $key;
}
但是我想知道laravel的方式
编辑:
单个Redis::scan的var_dump
array(2) {
[0]=>
string(4) "23"
[1]=>
array(10) {
[0]=>
string(19) "key17"
[1]=>
string(19) "key72"
[2]=>
string(76) "key11"
[3]=>
string(19) "key73"
[4]=>
string(19) "key63"
[5]=>
string(19) "key87"
[6]=>
string(19) "key70"
[7]=>
string(19) "key65"
[8]=>
string(19) "key82"
[9]=>
string(19) "key43"
}
}
【问题讨论】:
-
Laravel 在后台使用 Predis (github.com/laravel/framework/blob/5.2/src/Illuminate/Redis/…)。你试过循环调用scan吗?
-
@martinczerwi 我不知道该怎么做...
-
简短的问题,因为我目前无法重建。第一个代码示例中的
$test应该包含一个用于迭代的游标(就像本机 Redis 调用一样)。这是您在下次调用扫描时使用的内容。你能粘贴$test的var_dump吗?
标签: laravel laravel-5 redis laravel-5.2