我正在使用CachingFramework.Redis中的标记机制实现缓存。
我的应用程序可以成功读取和写入Redis,我可以在Redis中创建标签(我可以在桌面管理器中看到)。但是,只有当我尝试从Redis中的标记存储区读取时才会出现超时异常:
System.TimeoutException:'超时执行TYPE:$ 标记 $:_ 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中的调试模式中。在运行时,它似乎很好。但是,能够进行调试会很好。