我想从散列中获取所有键及其值,其中键与特定模式匹配。我将 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
例如
myHash =
key:1 -- val1,
asdf -- asdfe,
key:2 -- val2
现在我想从 myHash
中获取所有键及其值如果哈希中的键匹配以下模式:key:*
这会导致
key:1 -- val1,
key:2 -- val2
最佳答案
Redis 不直接支持这个:http://redis.io/commands#hash
您仅限于一次查询所有键或一个或多个由其确切名称指定的键。这种使用模式可能意味着您需要一个散列加上另一个数据结构(例如集合)来记录有趣的键,或者两个或更多单独的散列。由于 Redis 支持同时对多个结构进行原子更新,这通常是可行的方法。
关于redis - 如何从redis中的哈希中获取与特定模式匹配的所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404847/