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

Windows 10环境下Redis按Get*模式删除Key的解决方案求助

Windows 10下删除Redis中匹配Get*模式Key的可行方案

方案1:用PowerShell替代xargs(适合少量Key)

Windows CMD不支持xargs,但PowerShell可以实现类似管道处理逻辑。打开PowerShell,切换到Redis安装目录后执行:

# 先查看匹配的Key,确认无误后再执行删除
redis-cli --scan --pattern Get*
# 执行删除
redis-cli --scan --pattern Get* | ForEach-Object { redis-cli del $_ }

也可以用简写形式:

redis-cli --scan --pattern Get* | % { redis-cli del $_ }

方案2:使用Redis Lua脚本(高效,适合大量Key)

Lua脚本在Redis服务端批量处理,避免客户端与服务器频繁通信,性能更优。打开redis-cli客户端,直接粘贴执行以下脚本:

local cursor = "0"
repeat
    local result = redis.call("SCAN", cursor, "MATCH", "Get*", "COUNT", 100)
    cursor = result[1]
    local keys = result[2]
    if #keys > 0 then
        redis.call("DEL", unpack(keys))
    end
until cursor == "0"

注:COUNT参数可根据实际Key数量调整(比如设为1000),加快扫描效率。

方案3:直接用DEL命令配合KEYS(仅适用于测试环境或Key极少场景)

若Redis实例Key数量少,不会因KEYS命令阻塞服务,可直接列出所有匹配Key执行删除:
在redis-cli内执行:

127.0.0.1:6379> DEL GetLeftMen:28.10.50.154 GetLeftMenu|28.10.50.156 GetLeftMenu|28.30.60.146 GetLeftMenu|28.30.50.146 GetLeftMenu|28.30.50.156 GetLeftMen:28.10.50.155 GetLeftMen:28.10.50.156

或在CMD中执行:

redis-cli DEL GetLeftMen:28.10.50.154 GetLeftMenu|28.10.50.156 GetLeftMenu|28.30.60.146 GetLeftMenu|28.30.50.146 GetLeftMenu|28.30.50.156 GetLeftMen:28.10.50.155 GetLeftMen:28.10.50.156

⚠️ 注意:KEYS命令会遍历所有Key,生产环境Key数量大时会导致Redis阻塞,不建议使用。

之前命令报错原因说明

  • sscan --pattern Get* | xargs -del:sscan需指定初始游标(值为0),且Redis客户端内无法直接使用Shell管道和xargs命令,需在CMD/PowerShell环境执行。
  • scan --pattern Get:*:缺少初始游标参数,正确格式为SCAN 0 MATCH Get* COUNT 100。
  • xargs报错:Windows CMD默认不自带xargs工具,需用PowerShell的替代语法实现批量处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:13:13