我正在使用phpredis用SCAN替换KEYS.
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
$it = NULL;
while($arr_keys = $redis->scan($it, "mykey:*", 10000)) {
foreach($arr_keys as $str_key) {
echo "Here is a key: $str_key\n";
}
}
Run Code Online (Sandbox Code Playgroud)
根据redis文档,我使用SCAN对搜索进行分页以避免使用KEYS的缺点.
但实际上,使用上面的代码比使用单个代码要低3倍$redis->keys()
所以我想知道我是否做错了什么,或者我必须付出速度来避免KEYS的威胁?
请注意,我的数据库中有400K +密钥和4个mykey:*密钥