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

如何用Redis单命令删除指定前缀下的所有JSON类型文档?

批量删除Redis中指定模式的JSON类型键

首先明确:DEL命令本身不支持通配符模式匹配,你遇到的问题和键是JSON类型无关——不管键是JSON、SET还是其他类型,直接执行DEL cart:product:*时,Redis会把cart:product:*当作一个完整的键名去查找,而不是匹配所有符合该模式的键。之前能删除SET类型的键,应该是刚好存在名为cart:product:*的SET键,或者是你混淆了操作逻辑。

如果你想用单命令实现通配符匹配批量删除,可以通过Redis的Lua脚本功能完成,这是Redis原生支持的单命令方式:

EVAL "return redis.call('DEL', unpack(redis.call('KEYS', ARGV[1])))" 0 cart:product:*

说明:

  • KEYS cart:product:*会找出所有符合该模式的键,返回键名列表
  • unpack把列表拆分为多个参数传给DEL命令,一次性删除所有匹配的键
  • 这个命令对所有类型的键都有效,包括JSON类型

⚠️ 注意:KEYS命令在包含大量键的Redis实例中会阻塞服务,因为它会遍历所有键。如果你的数据库键数量较多,更安全的方式是用SCAN结合脚本分批删除,但这无法用单一命令完成,需要循环执行。

内容的提问来源于stack exchange,提问作者V.Rashkov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:34:55