【问题标题】:Can i use wild card search for Redis HSCAN?我可以使用通配符搜索 Redis HSCAN 吗?
【发布时间】:2021-11-30 12:15:33
【问题描述】:

我的缓存中有这样的哈希键 -

products:P101
products:P211
products:P327
...

现在我想使用 widlcard 对这些缓存项进行 HSCAN 扫描,但它不起作用

hscan "products:P121" 0 //this works
scan 0 match products:* //this works
hscan "products:*" 0 //this does not work

我还想在我的 c# .net 核心应用程序中使用通配符扫描检查是否存在任何项目 我使用了下面的代码,但它没有返回任何数据 -

 var db = s_redis.GetDatabase();
 var cachedItem = db.HashScan("products:*");
 var count = cachedItem.ToList().Count; //this is always 0

有人可以帮我完成以下两件事

c# - var cachedItem = db.HashScan("products:*"); //this is always 0
cmd - hscan "products:*" 0 //this does not work

【问题讨论】:

    标签: c# redis stackexchange.redis


    【解决方案1】:

    HSCAN 用于扫描 Redis 哈希的字段,而不是键。要扫描密钥,您需要使用 SCAN 命令。

    hscan "products:P121" 0 //这可行

    这会扫描位于键“products:P121”的哈希的所有字段。

    扫描 0 个匹配产品:* //这有效

    这会扫描所有键,并且只返回与“products:*”模式匹配的键。

    hscan "products:*" 0 //这不起作用

    这会扫描位于关键 products:* 处的哈希的所有字段。在您的情况下,没有名为 *products:** 的哈希,这就是它不起作用的原因。

    【讨论】:

      【解决方案2】:

      您必须提供要搜索的哈希图的名称

      HSCAN name_of_the_hash 游标匹配模式

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-08
        • 2010-10-21
        • 1970-01-01
        • 2015-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多