我想从散列中获取所有键及其值,其中键与特定模式匹配。我将redis与c#库ServiceStack.Redis一起使用。
我找到了命令Keys with a pattern
:http://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
答案 0 :(得分:4)
Redis不直接支持此操作:http://redis.io/commands#hash
您只能同时查询所有密钥或按其确切名称指定的一个或多个密钥。这种使用模式可能意味着你需要一个哈希加上另一个数据结构(例如set)来记录有趣的键,或两个或多个单独的哈希值。由于Redis支持同时对多个结构进行原子更新,因此通常可以采用这种方式。