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万行整数字段及其编码数据。 有没有办法用offset和limit拉取这些数据? 因为如果我这样做,例如
$predisObj->hgetall('myHash');
它提取所有内容,并且由于数据过多,浏览器崩溃
答案 0 :(得分:0)
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;
}
此命令将返回一个迭代器,因此内存问题不再重要。