如何从redis中的散列中获取与特定模式匹配的所有键?

Ger*_*ero 5 redis servicestack

我想从散列中获取所有键及其值,其中键匹配特定模式。我将 redis 与 c# 库 ServiceStack.Redis 一起使用。

我找到了命令Keys with a patternhttp: //redis.io/commands/keys 如果它是简单的 string_key -- string_val 但如果它在哈希中则什么都没有。

有,List<string> GetValuesFromHash(string hashId, params string[] keys);但只有当密钥完美匹配 redis 中的密钥时才有效。Akey:*会回来 null

例如

myHash = 
key:1 -- val1, 
asdf -- asdfe,
key:2 -- val2
Run Code Online (Sandbox Code Playgroud)

现在,myHash如果哈希中的键与以下模式匹配,我想获取所有键及其值:key:*

那会导致

key:1 -- val1, 
key:2 -- val2
Run Code Online (Sandbox Code Playgroud)

rkh*_*rov 5

Redis 不直接支持这个:http : //redis.io/commands#hash

您只能一次查询所有键或按其确切名称指定的一个或多个键。这种使用模式可能意味着您需要一个散列加上另一个数据结构(例如集合)来记录有趣的键,或者两个或多个单独的散列。由于 Redis 支持一次对多个结构进行原子更新,因此这通常是可行的方法。