如何在redis中模式匹配空字符串?
how to pattern match empty string in redis?
在 Redis 中,我有以下格式的散列键
keys {
'img::opt': 'nameX',
'img:*:opt': 'nameY',
'img:#:opt': 'nameZ',
'img:A:opt': 'nameN'
}
实际上是'extension:owner:spec'
的格式
我想根据 returns,
的所有者执行 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
但其中 none 个正在运行。是否可以模式匹配空字符串?
Redis 的 glob 样式模式匹配语法不支持 not ('^') 运算符。
但是,当您正在寻找两个特定的密钥时,为什么不直接通过以下操作直接访问它们:
HGET img:*:opt img::opt
注意:Redis 4之前的版本,HGET
需要替换成HMGET
在 Redis 中,我有以下格式的散列键
keys {
'img::opt': 'nameX',
'img:*:opt': 'nameY',
'img:#:opt': 'nameZ',
'img:A:opt': 'nameN'
}
实际上是'extension:owner:spec'
我想根据 returns,
的所有者执行 hscan1. 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
但其中 none 个正在运行。是否可以模式匹配空字符串?
Redis 的 glob 样式模式匹配语法不支持 not ('^') 运算符。
但是,当您正在寻找两个特定的密钥时,为什么不直接通过以下操作直接访问它们:
HGET img:*:opt img::opt
注意:Redis 4之前的版本,HGET
需要替换成HMGET