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

标签 redis servicestack

我想从散列中获取所有键及其值,其中键与特定模式匹配。我将 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/

相关文章:

redis - 在 Redis 中,是否可以根据某个成员在不同的 ZSET 中的存在来断言该成员包含在 ZRANGE 的结果中?

ruby-on-rails - 将键值存储用于 URL 缩短器的优点?

typescript - ServiceStack 身份验证中的 httponly ss-tok bearerToken cookie 有什么意义

ServiceStack 自定义格式和供应商特定内容类型

azure - Azure 上的 ServiceStack v4.0.24.0 Google OAuth 失败并显示 502

node.js - 使用 Socket.io 的 Redis 存储

amazon-web-services - 为 AWS ElastiCache 启用 BGSAVE

http - 如何将流发送到 ServiceStack? (使用 IRequiresRequestStream 时,RequestStream 的长度始终为零)

redis - 为什么redis-cli获取程序设置的对象的值总是nil

c# - Servicestack getAsync 解释