You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清空Laravel 5.x/6.x/7.x版本Redis数据库中指定队列的全部任务

Laravel 8 之前版本清空Redis指定队列任务的方法

以下两种方案都可以实现指定队列的清空操作,仅建议在开发环境使用,生产环境操作前请做好数据备份。

方案1:自定义Artisan命令(可重复使用,更适合项目长期维护)

  • 执行命令生成自定义指令文件
    php artisan make:command ClearRedisQueueCommand
    
  • 打开生成的 app/Console/Commands/ClearRedisQueueCommand.php 文件,替换为以下内容:
    <?php
    
    namespace App\Console\Commands;
    
    use Illuminate\Console\Command;
    use Illuminate\Support\Facades\Redis;
    
    class ClearRedisQueueCommand extends Command
    {
        protected $signature = 'queue:clear-redis {queue?}';
        protected $description = '清空Redis中指定队列的所有任务,默认清空default队列';
    
        public function handle()
        {
            $queue = $this->argument('queue') ?? 'default';
            $keys = [
                "queues:{$queue}",
                "queues:{$queue}:delayed",
                "queues:{$queue}:reserved",
            ];
            Redis::del($keys);
            $this->info("队列 {$queue} 已清空成功");
        }
    }
    
  • 后续需要清空队列时,直接执行对应指令即可:
    • 清空default队列:php artisan queue:clear-redis
    • 清空名为notify的队列:php artisan queue:clear-redis notify

方案2:直接操作Redis CLI(无需修改代码,适合临时使用)

  • 进入Redis命令行界面:
    redis-cli
    
  • 如果你的Redis设置了密码,先执行认证:
    auth 你的Redis密码
    
  • 切换到队列存储对应的Redis数据库,默认使用0号库:
    select 0
    
  • 可先查询所有队列相关的key,确认要清空的队列名称:
    keys queues:*
    
  • 执行删除命令清空指定队列的所有任务,以清空default队列为例:
    del queues:default queues:default:delayed queues:default:reserved
    

注意:操作前请确认队列名称,避免误删其他队列的有效任务。

内容的提问来源于stack exchange,提问作者YannPl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:36:03