Redis - 通过哈希键上的模式匹配删除字段
Redis - delete field by pattern matching on hash key
我在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
来实现,它在子键(字段)上启用模式匹配。但我需要在 "haskkey" 上完成。如何以有效的方式做到这一点?提前致谢。
PS:我们有 commKey
因为将来我们可能想添加另一种不以 commKey
开头的哈希键,它不应该受此影响。
您应该扫描键,而不是哈希。
- 使用
SCAN
命令获取匹配commKey:*
的键
- 对于每个键,调用
HDEL
删除给定的目标,无论散列是否有这样的字段。
我在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
来实现,它在子键(字段)上启用模式匹配。但我需要在 "haskkey" 上完成。如何以有效的方式做到这一点?提前致谢。
PS:我们有 commKey
因为将来我们可能想添加另一种不以 commKey
开头的哈希键,它不应该受此影响。
您应该扫描键,而不是哈希。
- 使用
SCAN
命令获取匹配commKey:*
的键
- 对于每个键,调用
HDEL
删除给定的目标,无论散列是否有这样的字段。