我正在使用 predis(如果有任何区别,可以使用 laravel)php 客户端与 Redis 一起使用。
我需要从 Redis 中获取与特定前缀匹配的所有键,我这样做是这样的:
$keys = [];
foreach (new Iterator\Keyspace($this->redis(), Cache::KEY_PREFIX.'*') as $key) {
$keys[] = $rate_key;
}
完成这些键的工作后,重复操作 - 我再次循环输入这些键。我注意到经过几次迭代后,一些键不包含在 $keys 数组中。
最奇怪的是,消失的键永远不会出现在下一次迭代中。重新启动 php 进程(它是一个守护进程)解决了这个问题。
我将 Redis 3.0.2 与 Predis 1.0 和 PHP 5.4 一起使用
PS 在键的循环中,我更改了其中一些键的值。但是,我不会删除任何键。