我在我的应用程序中使用StackExchange.Redis来存储键/值。 我得到的问题是,在获取/检查缓存中的密钥时,我得到TimeOut异常:
以下是详细的例外情况:
System.TimeoutException未处理HResult = -2146233083
Message =超时执行EXISTS GlobalSettings,inst:0,mgr: ExecuteSelect,err:never,queue:56,qu:56,qs:0,qc:0,wr:0,wq: 1,in:0,ar:0,IOCP :( Busy = 0,Free = 1000,Min = 2,Max = 1000),WORKER: (Busy = 20,Free = 32747,Min = 2,Max = 32767),clientName:WIN-VDIGHSLJUBV
Source = StackExchange.Redis.StrongName StackTrace: 在StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl [T](消息 消息,ResultProcessor1 processor, ServerEndPoint server) at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor
1个处理器,ServerEndPoint服务器) 在StackExchange.Redis.RedisDatabase.KeyExists(RedisKey键,CommandFlags标志)
我有以下代码:
IDatabase db = GetDatabase();
return db.KeyExists(cacheKey);
我得到的例外是" db.KeyExists(cacheKey)"。
基于这个问题,我认为增加超时可能有所帮助,因此我在初始化时这样做了:
redis = ConnectionMultiplexer.Connect(string.Format("{0},allowAdmin=true,syncTimeout=30000,connectTimeout=30000", redisConfig));
即我添加了" syncTimeout = 30000,connectTimeout = 30000"
但这也没有帮助。
我是否需要将超时添加到其他位置?
我是否需要在Redis逻辑的其他方面查看此问题的修复程序?