使用Redis时超时异常

时间:2016-03-28 19:11:05

标签: c# redis stackexchange.redis

我在我的应用程序中使用StackExchange.Redis来存储键/值。 我得到的问题是,在获取/检查缓存中的密钥时,我得到TimeOut异常:

enter image description here

以下是详细的例外情况:

  

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](消息   消息,ResultProcessor 1 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逻辑的其他方面查看此问题的修复程序?

0 个答案:

没有答案