Redis-通过哈希键上的模式匹配删除字段

Redis-通过哈希键上的模式匹配删除字段,redis,redis-cli,Redis,Redis Cli,我在Redis中有以下结构 commKey:hkey1 target1 - value1 target2 - value2 commKey:hkey2 target2 - value3 target3 - value4 commKey:hkey3 target1 - value5 target3 - value6 ... commkey将出现在所有哈希键上,后跟命名空间和唯一字符串(hkey1、hkey2、hkey3…)。我要删除所有键中的所有t

我在Redis中有以下结构

commKey:hkey1
    target1 - value1
    target2 - value2
commKey:hkey2
    target2 - value3
    target3 - value4
commKey:hkey3
    target1 - value5
    target3 - value6
...
commkey将出现在所有哈希键上,后跟命名空间和唯一字符串(hkey1、hkey2、hkey3…)。我要删除所有键中的所有target1
target1
出现在
commKey:hkey1
commKey:hkey3
中。因此,这类似于match
commKey:
和del
target1
。我试着用
hscan
来实现,它可以在子键(字段)上启用模式匹配。但我需要在“哈斯基”上做。如何以有效的方式进行?提前谢谢


PS:我们有
commKey
,因为将来我们可能要添加另一种hashkey类型,它不以
commKey
开头,并且不应该受此影响。

您应该扫描密钥,而不是散列

  • 使用
    SCAN
    命令获取与
    commKey:
  • 对于每个键,调用
    HDEL
    删除给定的目标,无论哈希是否有这样的字段

  • 这是一种可能的方式。我们需要做两次手术<代码>扫描和
    HDEL
    。单次手术不可能吗?有什么方法可以同时进行比赛和比赛delete@RaR好了,没有这样的方法。。。如果你找到了,请与我分享:)后来我发现,实际需要的是做扫描以及hscan<代码>使用match
    commKey:
    扫描,对于返回的每个键,必须使用match
    target1*
    进行扫描。然后,对于每个结果,必须执行
    HDEL
    。为了避免这些步骤,我正在寻找一种更简单、最简单的方法