批量删除 Redis 中的 keys 代码显示成功了,但是查看 Redis 中 key 依然存在
第一次代码结构 (遇到的问题)
代码如下:
$keys = app('redis')->keys(config('env.REDIS_PREFIX') . '*');
/*
$keys输出如下:
array:3 [▼ `0 => "m_branch_a:ea675b6b0bc6af7b00e25d4279d0447345e1eccd"
1 => "m_branch_a:permissions"
2 => "m_branch_a:globalConfig"` ]
*/
$status = app('redis')->del($keys);
/*
$status 输出值是:3
*/
以上代码正常执行,没有任何错误日志,但是查看Redis发现数据依然存在,请教一下大家,谢谢指点!!!
第二次修改代码结构(发现了"异常规律")
我测试找到了一个规律,具体代码如下:
规律一
使用dd()输出,Redis中的相关keys删除成功了。
规律二:
使用return redirect()->back();Redis中相关keys就删除不了,但是日志记录已经删除成功了,而且删除的状态也是>1的。
$keys = app('redis')->keys(config('env.REDIS_PREFIX') . '*');
if (empty($keys) || !is_array($keys)) {
Session::flash('tipWarning', '1');
Session::flash('tipMsg', '(Redis中)暂无缓存数据.');
return redirect()->back();
}
app('redis')->del($keys);
//使用下面代码,直接使用dd() Redis中就正常删除了相关keys;
dd('缓存清除成功,请手动刷新页面');
//使用下面代码,Redis中就没有删除成功相关keys;
//return redirect()->back();
我觉得很奇怪,不知道什么原因,请各位指点,谢谢了!
推荐文章: