public function handle()
{
$this->redis = new Redis();
$this->redis->connect(env(“REDIS_HOST”), env(“REDIS_PORT”));
$this->redis->auth(env(“REDIS_PASSWORD”));
$pre = "api_user_auth_";
//
p
r
e
=
′
t
e
s
t
:
′
;
/
/
f
o
r
(
pre = 'test:'; // for (
pre=′test:′;//for(i = 0; $i < 100; $i++) {
//
t
h
i
s
−
>
r
e
d
i
s
−
>
s
e
t
(
this->redis->set(
this−>redis−>set(pre . “
i
"
,
"
i", "
i","i”);
// }
//返回的结果集为空的话,函数不返回,而是直接继续执行scan命令
$this->redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
$it = NULL;
static $count = 0;
while ($arr_keys = $this->redis->scan($it, "$pre*", 1000)) {
$get_key_ttl = [];
foreach ($arr_keys as $key=>$item) {
$get_key = $this->redis->ttl($item);
if ($get_key == -1){
$get_key_ttl[$key] = $item;
}
}
call_user_func_array([$this->redis, 'del'], $get_key_ttl);
$count += count($get_key_ttl);
//echo var_export($get_key_ttl, true) . PHP_EOL;
//call_user_func_array([$this->redis, 'del'], $arr_keys);
//echo var_export($arr_keys, true) . PHP_EOL;
}
Log::info('delete redis user---'.$count);
return true;
}