如何获取带有偏移量和限制的predis数据?

how to get predis data with offset and limit?

我使用 predis hset 库将我的数据作为编码数据存储在 redis 中。 因此数据以哈希名称存储在数据库之一中,例如 myHash

field = integer
value = encoded data..

例如

1    {'pk_id':1,'name' : 'test1'}
2    {'pk_id':2,'name' : 'test2'}
3    {'pk_id':3,'name' : 'test3'}
...and so on...

大约有 40 万多行整数字段及其编码数据。 有没有办法用偏移量和限制来提取这些数据? 因为如果我这样做,例如

$predisObj->hgetall('myHash');

它把所有东西都拉出来了,浏览器因为数据太多而崩溃

predis 与 redis 共享命令列表,因为它是 redis 存储的 php 接口。因此,您可以使用标准的 redis 命令来满足您的需求:

实现你想要的最好方法是SCAN command 来自 predis documentation:

// === Keyspace iterator based on SCAN ===
echo 'Scan the keyspace matching only our prefixed keys:', PHP_EOL;
foreach (new Iterator\Keyspace($client, 'predis:*') as $key) {
    echo " - $key", PHP_EOL;
}

此命令将 return 一个迭代器,因此内存问题将不再重要。