Session StackExchange RedisTimeoutException

Session StackExchange RedisTimeoutException,session,redis,stackexchange.redis,Session,Redis,Stackexchange.redis,我最近将我的项目转移到Redis会话。Redis会话从登录到到达仪表板都能正常工作。在此期间,会话的读写工作正常。但当我进入任何内部页面时,我会得到如下超时错误 ConfigurationOptions.Parse("server,connectTimeout=15000,KeepAlive = 30,syncTimeout=15000") StackExchange.Redis.RedisTimeoutException:执行HGETALL的超时 {Key},inst:1,queue:17,

我最近将我的项目转移到Redis会话。Redis会话从登录到到达仪表板都能正常工作。在此期间,会话的读写工作正常。但当我进入任何内部页面时,我会得到如下超时错误

ConfigurationOptions.Parse("server,connectTimeout=15000,KeepAlive = 30,syncTimeout=15000")
StackExchange.Redis.RedisTimeoutException:执行HGETALL的超时 {Key},inst:1,queue:17,qu:0,qs:17,qc:0,wr:0,wq:0,in:0,ar:0

目前我的配置如下

ConfigurationOptions.Parse("server,connectTimeout=15000,KeepAlive = 30,syncTimeout=15000")

请建议如何解决此超时错误?

我发现您遇到的超时错误是在HGETALL操作上。HGETALL是一个O(N)操作,其中N是散列的大小。您是否正在尝试获取太大的哈希值,但该哈希值正在超时


此外,错误消息不包含线程池或CPU信息,这意味着您可能正在使用非常旧的StackExchange.Redis客户端nuget包版本。将客户端升级到最新版本应有助于在错误消息中获取此额外(CPU和线程池)信息

如何打开会话/关闭会话?是http服务器还是应用程序?如何检查您的会话活动?请详细解释您的pbm。实际上,我是Redis会话的新手。我在Global.asax中编写了以下代码来初始化Redis会话,并在webconfig中对其进行了更改。Global_asax.redisConfigOpts=ConfigurationOptions.Parse(“{server_ip}”)RedisConnectionConfig.GetSERedisServerConfig=函数(上下文为HttpContextBase)返回新的KeyValuePair(字符串,ConfigurationOptions)(“DefaultConnection”,Global_asax.redisConfigOpts)端函数