gpt4 book ai didi

php - 如何在 Predis 中使用 SCAN 和 MATCH 选项

转载 作者:IT王子 更新时间:2023-10-29 05:55:28 33 4
gpt4 key购买 nike

我以前用过 KEYS命令在我的 Redis 数据库中搜索与特定模式匹配的键。从 Redis 2.8 开始,SCAN命令似乎优于 KEYS,因为它返回一个迭代器而不是一次扫描整个键空间。

我正在使用 Predis >= 0.8.5 应该支持 SCAN 命令的 PHP 迭代器。 Predis 没有很多文档,所以我想知道如何将以下 KEYS 命令转换为它的 SCAN 对应命令:

$client->keys($pattern)

我尝试了以下方法:

$client->scan('MATCH', $pattern);

哪种方法有效 - 但它不返回 native PHP 迭代器。使用 Predis 的内置迭代器支持会非常好。

最佳答案

我在 Predis examples directory 中找到了如何操作.

要使用 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 的一个很好的接口(interface)。

关于php - 如何在 Predis 中使用 SCAN 和 MATCH 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545549/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com