簡體   English   中英

Azure Redis - 使用模式匹配的密鑰通配符?

[英]Azure Redis - Key Wildcard using pattern matching?

正如標題所暗示的,我想知道是否有一種有效的方法來利用 SCAN/Pattern。 我正在使用 c# .net 核心。 當我搜索 IDatabase 時,除了 SetScan 之外,我真的找不到任何允許模式的東西,但這顯然不是正確的事情。 這對我來說有點不尋常,因為 Azure Redis 中的 redis 控制台確實支持 SCAN 的概念。 在此處輸入圖像描述

我需要能夠在這里傳遞部分密鑰:

     Assume I can store keys like this: "SID_{0}_CID_{1}_OID_{2}_BID_{3}"

     ///BUT when I call Redis, I might only have part of the key
     RedisValue value =      await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync(key)); //<-- key needs to be like '*CID_123*BID_333*' 
         if(value.HasValue)
             return value;
        
         return string.Empty; 

db implements IDatabase which implements IRedis and IDatabaseAsync

任何人都知道我如何實現這一目標? Python 人似乎有這個可用但我找不到類似的..Redis 通配符鍵

在此處輸入圖像描述

我最終做了以下事情:

  public async  Task<RedisValue[]> GetItems(string customPattern)
        {
            var endpoints = _connection.GetEndPoints(); 
            var s= _connection.GetServer(endpoints[0]);
            var keys =  s.Keys(pattern: customPattern).ToArray();
            return await _database.StringGetAsync(keys);
        }

重復 Northern Pikes 的旋律……“它不漂亮,只是看起來那樣。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM