1

我正在使用CachingFramework.Redis中的标记机制实现缓存。

我的应用程序可以成功读取和写入 Redis,并且可以在 Redis 中创建标签(我可以在桌面管理器中看到)。但是,仅当我尝试从 Redis 中的标记存储读取时,才会出现超时异常:

System.TimeoutException: '超时执行 TYPE :$ tag $:_HB, inst: 63, mgr: ExecuteSelect, err: never, queue: 1, qu: 1, qs: 0, qc: 0, wr: 0, wq: 1 , in: 0, ar: 0, clientName: LAPTOP-GLFEVSO4, serverEndpoint: 127.0.0.1:6379, keyHashSlot: 14024, IOCP: (Busy=0,Free=1000,Min=200,Max=1000), WORKER: ( Busy=3,Free=997,Min=200,Max=1000), Local-CPU: 100% (请看这篇文章了解一些可能导致超时的常见客户端问题:https ://github.com /StackExchange/StackExchange.Redis/tree/master/Docs/Timeouts.md )'

调用代码是这样的:

  var tags = new List<string>();
  if (conditionA == true) { tags.Add("_HB"); }
  if (conditionB == false) { tags.Add("_NHB");}
  var foundKeys = Redis.Cache.GetKeysByTag(tags.ToArray()); //the timeout happens here
   

我已经检查过内存使用和 CPU 不是问题,并且我在 machine.config 中增加了 MinIOThreads。我没有想法......这是CachingFramework.Redis(或底层StackExchange.Redis)中的一个错误,还是我做错了什么?

[* 我在调试模式下使用 VS2017/IIS Express,针对我的开发机器上的本地 Redis 独立实例]

更新 该问题仅在 Visual Studio 的调试模式下发生。在运行时,它似乎很好。但是,能够调试会很好。

4

0 回答 0