簡體   English   中英

為什么錯誤 No connection is available to service this operation: SETEX while write to Redis Cache in C# console application 以及如何解決它

[英]Why error No connection is available to service this operation: SETEX while writing to Redis Cache in C# console application and how to solve it

我正在嘗試將包含大約 5000 條記錄的字典中的記錄寫入 Redis 緩存。 但有時我會收到以下異常,我不知道為什么會出現此錯誤,我已經在互聯網上進行了檢查,但找不到此問題的任何解決方案或根本原因。

using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_configuration.GetConnectionString("redis_server")))
            {
                IDatabase db = redis.GetDatabase();


                foreach (KeyValuePair<string, string> keyValuePair in _dictAllData)
                {
                    db.StringSet(keyValuePair.Key, keyValuePair.Value, TimeSpan.FromMinutes(30));
                }

        }

例外

沒有連接可用於服務此操作:SETEX 747712; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=4,Max=32767), Local-CPU: n/a

編輯:

StackExchange.Redis 版本:2.0.601

似乎您的池中的連接用完了(客戶端)。 此外,在性能方面,在這種情況下一次一組是不好的。

您應該使用批處理或流水線。 請參閱Stackexchange.Redis 中的流水線與批處理 它有代碼示例。

由於您似乎並不關心響應,請考慮使用flags: CommandFlags.FireAndForget 請參閱管道和多路復用器

暫無
暫無

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

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