生产环境在Azure上,使用
Redis Cache Standard 2.5GB
.
实施例1
system.web.httpunhandledException(0x80004005):类型的异常
引发了“System.Web.HttpUnhandledException”。--->
stackexchange.redis.redistimeoutexception:执行setnx超时
user.313123,inst:49,mgr:inactive,err:never,queue:0,qu:0,qs:
0,qc:0,wr:0,wq:0,in:0,ar:0,客户名称:prd-vm-web-2,
serverEndpoint:未指定/construct3.redis.cache.windows.net:6380,
keyhashslot:15649,iocp:(busy=0,free=1000,min=1,max=1000),worker:
(busy=1,free=32766,min=1,max=32767)(请看这个
有关可能导致超时的一些常见客户端问题的文章:
http://stackexchange.github.io/StackExchange.Redis/Timeouts
AT
stackexchange.redis.connectionmultiplexer.executesyncImpl[t](消息)
消息,结果处理器
1 processor, ServerEndPoint server) in
c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line
2120 at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message,
ResultProcessor
1个处理器,服务器端点服务器)在
C:\code\stackexchange.redis\stackexchange.redis\stackexchange\redis\redisbase.cs:line
八十一
实施例2
stackexchange.redis.redistimeoutexception:执行get时超时
forumtopic.33831,inst:1,mgr:inactive,err:never,queue:2,qu:0,
qs:2,qc:0,wr:0,wq:0,in:0,ar:0,clientname:prd-vm-web-2,
serverEndpoint:未指定/construct3.redis.cache.windows.net:6380,
keyhashslot:5851,iocp:(busy=0,free=1000,min=1,max=1000),worker:
(busy=1,free=32766,min=1,max=32767)(请看这个
有关可能导致超时的一些常见客户端问题的文章:
http://stackexchange.github.io/stackexchange.redis/超时
)在
stackexchange.redis.connectionmultiplexer.executesyncImpl[t](消息)
消息,结果处理器
1 processor, ServerEndPoint server) in
c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line
2120 at StackExchange.Redis.RedisBase.ExecuteSync[T](Message
message, ResultProcessor
1个处理器,服务器端点服务器)在
C:\code\stackexchange.redis\stackexchange.redis\stackexchange\redis\redisbase.cs:line
81在stackexchange.redis.redisdatabase.stringget(redisky key,
commandflags flags)在
C:\code\stackexchange.redis\stackexchange.redis\stackexchange\redis\redisdatabase.cs:line
1647年
c3.code.controls.application.caching.distributed.distributedcacheController.get[t](字符串)
cachekey)在
C:\construct.net\source\c3alpha2\code\controls\application\caching\distributed\distributedcacheController.cs:line
115在
c3.code.controls.application.caching.manager.manager.get[t](字符串)
键,func`1 getFromExternanFunction,Boolean SkiploCalcChies)in
C:\construct.net\source\c3alpha2\code\controls\application\caching\manager\manager.cs:line
159,位于c3.pagecontrols.forums.topicrender.page_load(对象发送器,
事件参数e)in
C:\construct.net\source\c3alpha2\pagecontrols\forums\topicrender.ascx.cs:line
40 at system.web.ui.control.onload(事件参数e)at
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.control.loadRecursive()位于
system.web.ui.page.processRequestMain(布尔值
includeStagesBeforeAsyncPoint,boolean includeStagesAfterAsyncPoint)
这些错误是零星的,一天几次。
这是一个Azure网络Blip,还是我可以减少的?查看错误中的数字似乎没有什么异常,而且服务器负载似乎从未超过7%,如Azure报告的那样。
Redis连接
internal static class RedisController
{
private static readonly object GetConnectionLock = new object();
public static ConnectionMultiplexer GetConnection()
{
if (Global.RedisConnection == null)
{
lock (GetConnectionLock)
{
if (Global.RedisConnection == null)
{
Global.RedisConnection = ConnectionMultiplexer.Connect(
Settings.Deployment.RedisConnectionString);
}
}
}
return Global.RedisConnection;
}