gpt4 book ai didi

带有通配符字段的 redis hmget

转载 作者:可可西里 更新时间:2023-11-01 11:05:11 26 4
gpt4 key购买 nike

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

"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*

更多关于 SCANofficial docs 中发挥作用.

LUA方式

此脚本在 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 中使用 redis-cli 和 LUA 的精彩介绍可以在 A Guide for Redis Users 中找到.

关于带有通配符字段的 redis hmget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com