redis的hscan命令:
redis版本>=3.2.1(hscan对版本有限制,至于限制到多少没有亲测,网上有帖子说是>=3.2)
当一个Hash中的field数量少时,hscan分页功能将不生效,自测field的数量达到513的时候才开始分页获取。
其他都是一次性获取全部;
$redis = new \Redis();
$redis->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);//此代码可有可无,不写了就要用php逻辑去规避他,因为hscan会返回[]数组
$it = NULL;
$pattern = '*';
$count = 10;
$key = 'test_test_test_test';
//下面这种写法就可以不写上面那个setOption
while (true) {
$keys_arr = $redis->hScan($key, $it, $pattern, $count);
if($keys_arr === false){
break;
}
echo "<pre>";
print_r($keys_arr);
echo "----------------------------------------";
}