Redis hmget与通配符字段

我在redis中有一个hach集,如下所示。

"abcd" : {

"rec.number.984567": "value1",

"rec.number.973956": "value2",

"rec.number.990024": "value3",

"rec.number.910842": "value4",

"rec.number.910856": "...",

"other.abcd.efgh": "some value",

"other.xyza.blah": "some other value"

"..." : "...",

"..." : "...",

"..." : "...",

"..." : "..."

}

如果我叫hgetall abcd,它将为我提供哈希中的所有字段。我的目标是仅获取以“ rec.number”开头的哈希集的那些字段。当我打电话喜欢

  redis-cli hmget "abcd" "rec.number*",

它给我的结果像

1)

有没有一种方法可以只检索那些以我期望的模式开头的键的数据?我只想检索那些键,因为我的数据集包含许多其他不相关的字段。

回答:

HMGET在字段名称中不支持通配符。您可以为此使用HSCAN:

HSCAN abcd 0 MATCH rec.number*

官方文档中有关SCAN功能的更多信息。

回答:

该脚本在LUA脚本中完成:

local rawData = redis.call('HGETALL', KEYS[1]);

local ret = {};

for idx = 1, #rawData, 2 do

if string.match(rawData[idx], ARGV[1]) then

hashData[rawData[idx]] = rawData[idx + 1];

end

end

有关redis-cli在Redis中使用LUA的很好的介绍,可以在《Redis用户指南》中找到。

以上是 Redis hmget与通配符字段 的全部内容, 来源链接: utcz.com/qa/431176.html

回到顶部