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 "----------------------------------------";
}