使用Laravel的Redis,批量删除与通配符模式匹配的键
在 Redis 中,没有使用通配符进行批量删除键的命令。本次将在 Laravel 5.8 中分享使用通配符批量删除 Redis 键的方法。
删除多个项目的方法(包括前缀)
$keyPattern = 'hogehoge_*';
$keys = array_map(function ($key) {
return str_replace(config('database.redis.options.prefix'), '', $key);
}, Redis::keys($keyPattern));
if (!empty($keys)) {
Redis::del($keys);
}
如果使用多个连接且每个连接的前缀不同,请适当修改`config(‘database.redis.options.prefix’)`部分。
请使用上述的前缀进行执行,因为从Laravel5.8开始默认指定了前缀。
如果没有使用前缀,这里也可以。
Redis::del(Redis::keys('hogehoge_*'));
因为Laravel 5.7默认没有指定前缀,所以这里可以使用。
这次是为了清除部分缓存而进行的发布操作,我使用php artisan tinker命令执行了上述代码。