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

时间:2013-10-16 13:30:29

标签: 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中的键匹配时才有效。 key:*会返回null

e.g。

myHash = 
key:1 -- val1, 
asdf -- asdfe,
key:2 -- val2

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

这会导致

key:1 -- val1, 
key:2 -- val2

1 个答案:

答案 0 :(得分:4)

Redis不直接支持此操作:http://redis.io/commands#hash

您只能同时查询所有密钥或按其确切名称指定的一个或多个密钥。这种使用模式可能意味着你需要一个哈希加上另一个数据结构(例如set)来记录有趣的键,或两个或多个单独的哈希值。由于Redis支持同时对多个结构进行原子更新,因此通常可以采用这种方式。