我正在尝试scan
与Laravel
一起使用Redis。我可以发出一个返回10个键的请求,但我希望循环直到所有键都返回。我不确定如何使用laravel进行此操作。目前我有
$test = Redis::scan(0, 'match', '*keypattern*');
我不知道是否有一种“ laravel”的方式。
编辑:
我使用作曲家进行导入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的方式
编辑:
var_dump的单 Redis::scan
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"
}
}
当Redis外观直接将命令传递给Predis(或您可能会说Redis本身)时,这与Redis文档(http://redis.io/commands/scan)紧密相关。您可以使用游标(第一个数组条目)进行后续调用以迭代直到游标为零。
我整理了一种递归方法,以扫描所有条目:
function scanAllForMatch ($pattern, $cursor=null, $allResults=array()) {
// Zero means full iteration
if ($cursor==="0") {
return $allResults;
}
// No $cursor means init
if ($cursor===null) {
$cursor = "0";
}
// The call
$result = Redis::scan($cursor, 'match', $pattern);
// Append results to array
$allResults = array_merge($allResults, $result[1]);
// Recursive call until cursor is 0
return scanAllForMatch($pattern, $result[0], $allResults);
}
请注意$this
,如果您在类中使用了此功能,则可能需要在递归之前添加(将是return $this->scanAllForMatch(...)
)
您可以这样称呼它:
// Don't pass a cursor yourself!
$allResults = scanAllForMatch('*keypattern*');
问题内容: 我目前正在使用Laravel和Redis创建一个应用程序。几乎一切正常。我按照文档中的说明扩展了身份验证,用户可以订阅,登录,注销…我可以创建内容,所有内容都存储在Redis中。但是我有一个问题。我无法运行“ php artisan route:list ”之类的命令,但出现错误消息:“ [InvalidArgumentException]数据库[redis]未配置。 ”。 问题是,在
拉威尔5.6 我正在尝试创建一个实时应用程序。我遵循了在谷歌上找到的教程,但它似乎不起作用。我不明白为什么,因为它在控制台中没有显示错误。 在config/app中。php 这是我的活动 这是我的控制器 在我的引导程序的底部。js 我的laravel-echo-server.json 我的聊天组件。vue 如果有人知道这个问题的解决方案。请帮忙。非常感谢你!
我在Redis 3.1.6版中使用PHP-Redis 生产 然而
我正在做,我把键作为 我想从中搜索, 也不起作用。请救命!!
问题内容: 我是Laravel的新手。我已经对该主题进行了研究,但似乎找不到找到可以解决问题的答案。 我知道Laravel的默认缓存驱动程序设置为 file ,可以更改。它还有一些手工缓存命令,例如: 1) 即使Laravel具有一些自动处理某些缓存的内置命令和功能(无法确切了解哪些部分),我仍然必须在查询结果上手动使用Cache Facade,对吗? 它不会自动执行操作,仅在我想更改某些内容时才
问题内容: 我正在寻找红宝石客户端的一些文档,用于redis,但运气不佳。我正在使用键,但是我听说它们在生产Redis中的性能很差。 想切换到,但我没有找到任何示例。也尝试过 对此有点感激。谢谢。 编辑:将Redis客户端从3.0.4更新到3.0.7后, 工作。 问题答案: 像这样做: 这是您需要的“文档”。 请务必也可以参考官方文档中。