如何在redis中模式匹配空字符串?
在Redis中,我有以下格式的散列键如何在redis中模式匹配空字符串?,redis,pattern-matching,glob,Redis,Pattern Matching,Glob,在Redis中,我有以下格式的散列键 keys { 'img::opt': 'nameX', 'img:*:opt': 'nameY', 'img:#:opt': 'nameZ', 'img:A:opt': 'nameN' } 它的格式实际上是“extension:owner:spec” 我想根据返回的所有者执行hscan 1. Everything except blank(will return 2nd, 3rd and 4th keys) 2. Only blank an
keys {
'img::opt': 'nameX',
'img:*:opt': 'nameY',
'img:#:opt': 'nameZ',
'img:A:opt': 'nameN'
}
它的格式实际上是“extension:owner:spec”
我想根据返回的所有者执行hscan
1. Everything except blank(will return 2nd, 3rd and 4th keys)
2. Only blank and star(*)(will return 1st and 2nd keys)
首先,我可以使用模式作为'img:?*:opt'
。如何编写可用于第二种情况的模式
我试过了
img:[^][*]:opt
img:[^|*]:opt
img:[*^]:opt
但他们都没有工作。是否可以对空字符串进行模式匹配?Redis“全局样式的模式匹配语法不支持not(“^”)运算符 但是,当您正在寻找两个特定的密钥时,为什么不直接通过以下操作访问它们:
HGET img:*:opt img::opt
注意:在4之前的Redis版本中,
HGET
需要替换为Redis的全局样式模式匹配语法不支持not(“^”)运算符
但是,当您正在寻找两个特定的密钥时,为什么不直接通过以下操作访问它们:
HGET img:*:opt img::opt
注意:在4之前的Redis版本中,
HGET
需要替换为谢谢,^
中不支持@Itamar澄清。实际上,可能有不同的扩展。这就是为什么我要使用hscan
,这样我就可以像*:?*:opt
那样做。现在看来执行2个HSCAN将是唯一的解决方案。谢谢,@Itamar澄清^
在REDIS中不受支持。实际上,可能有不同的扩展。这就是为什么我要使用hscan
,这样我就可以像*:?*:opt
那样做。现在看来,执行2个HSCAN将是唯一的解决方案。