如何在Predis中将SCAN与MATCH选项一起使用
我以前曾使用该KEYS
命令在Redis数据库中搜索与特定模式匹配的键。从Redis
2.8开始,该SCAN
命令似乎比它更可取,KEYS
因为它返回一个迭代器,而不是立即扫描整个键空间。
我正在使用Predis > =
0.8.5,它应该支持该SCAN
命令的PHP迭代器。Predis没有很多文档,所以我想知道如何将以下KEYS
命令转换为SCAN
对应的命令:
$client->keys($pattern)
我尝试了以下方法:
$client->scan('MATCH', $pattern);
哪种方法有效-但不会返回本地PHP迭代器。使用Predis的内置迭代器支持真的很好。
回答:
我在Predis示例目录中找到了如何做。
要用于SCAN
搜索数据库中的匹配键,只需使用以下Predis\Collection\Iterator\Keyspace
类:
use Predis\Collection\Iterator;$client = ...;
$pattern = 'foo*';
foreach (new Iterator\Keyspace($client, $pattern) as $key) {
...
}
显然,Predis在Predis\Collection\Iterator
每个返回迭代器的命令中都有一个迭代器类:
Keyspace
对于SCAN
HashKey
对于HSCAN
SetKey
对于SSCAN
SortedSetKey
对于ZSCAN
ListKey
对于LRANGE
-这实际上并没有使用Redis迭代器,但是LRANGE
无论如何它都是一个不错的接口。
以上是 如何在Predis中将SCAN与MATCH选项一起使用 的全部内容, 来源链接: utcz.com/qa/417493.html