Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在redis中模式匹配空字符串?_Redis_Pattern Matching_Glob - Fatal编程技术网

如何在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

在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 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将是唯一的解决方案。