.net core 下使用StackExchange的Redis库访问超时解决

问题:并发稍微多的情况下Redis偶尔返回超时

StackExchange的Redis类库,用的较多,但偶尔报的问题非常让人迷惑,访问超时,队列XXX…
问题出在Redis服务器吗?可是其他应用访问都正常啊,难道要把这个类库替换掉?
问题描述如下:

Timeout performing GET keyName, inst: 1, mgr: ExecuteSelect, err: never, queue: 20, qu: 20, qs: 0, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, 
clientName: computerName, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=4,Free=32763,Min=4,Max=32767), 
Local-CPU: unavailable (Please take a look at this article for some common client-side issues that can cause timeouts: 
https://github.com/StackExchange/StackExchange.Redis/tree/master/Docs/Timeouts.md)

给出了参考网址?

StackExchange给出了这个问题的解释和一般方案?那难道真的是我的工作线程比较多吗?我抱着试试看的态度,自己写了个测试用例:

code = StatusCode.OK;
// ThreadPool.SetMinThreads(200, 200);var ts = new List<Task>();for (int i = 0; i < 100; i++){var a = i;var t = new Task(() =>{var l = this.Context.TryGetLock("123");Trace.WriteLine($"{a}:{l!= null}");int workerThreads, completionPortThreads;ThreadPool.GetAvailableThreads(out workerThreads, out completionPortThreads);Trace.WriteLine($"Available: WorkerThreads: {workerThreads}, CompletionPortThreads: {completionPortThreads}");});t.Start();ts.Add(t);}Task.WaitAll(ts.ToArray());return null;

问题复现了,就是提示类似错误,把注释ThreadPool.SetMinThreads(200, 200);开启,问题消除。

结论

问题的解决在于启用task后,task入队后导致redis客户端超时,客户端。。。
因此解决的重点在于设置线程池的最小大小:
ThreadPool.SetMinThreads(200, 200);

小备注

之前改过连接超时,稍微改大点,也可以缓解该问题,但仅此而已。

StringBuilder sb = new StringBuilder();sb.AppendFormat("{0}:{1}", cfg.Server, cfg.Port);sb.AppendFormat(",allowAdmin={0}", cfg.AllowAdmin);sb.AppendFormat(",abortConnect=false,connectRetry=3,syncTimeout=2500");sb.AppendFormat(",connectTimeout={0}", cfg.ConnectTimeout>0?cfg.ConnectTimeout:5000);if (cfg.Ssl){// sb.AppendFormat(",ssl={0},password={1}", cfg.Ssl,cfg.Pwd);sb.AppendFormat(",password={1}", cfg.Ssl, cfg.Pwd);}

syncTimeout :超时会影响redis取值的超时,但是开多个task时,超时设置非常大也解决不了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML简易实践

2019独角兽企业重金招聘Python工程师标准>>> 面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML&#xff08;也就是Unified Modeling Language™&#xff09;&#xff0c;这篇课程的目的是展示出UML的精…

囊括计算机 电子信息仿真技术,什么是虚拟现实?

虚拟现实技术(英文名称&#xff1a;Virtual Reality&#xff0c;缩写为VR)&#xff0c;又称灵境技术&#xff0c;是20世纪发展起来的一项全新的实用技术。虚拟现实技术囊括计算机、电子信息、仿真技术于一体&#xff0c;其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感…

io python 读取pdf_Python读取PDF文件--pdfminer

作者使用的是Python3.6版本。pdfminer在Python2和Python3中的安装和使用有一定的区别&#xff0c;本文以Python为例。首先安装pdfminerpip install pdfminer3k官网对PDFMiner的介绍如下&#xff1a;PDFMiner is a tool for extracting information from PDF documents. Unlike …

战斗机各种世界之最,涨知识了。。。

全世界只有3.14 % 的人关注了青少年数学之旅世界上最大的战斗机苏联的图-128是目前世界上起飞重量最大&#xff0c;体积最大的一款截击机&#xff0c;它由前苏联图波列夫设计局于1955研制成功并进行首飞&#xff0c;1963年装备部队&#xff0c;该机全长30.03米&#xff0c;翼展…

Bye Bye Embed-再见了Embed,符合web标准的媒体播放器代码

由于Embed标签是Netscape的私有财产&#xff0c;故一直未被W3C认可&#xff0c;对于各种媒体文件使用Embed标签是非标准的&#xff0c;如何改变&#xff1f;Elizabeth Castro的 Bye Bye Embed 一文对于各种媒体播放器给出了很好的符合web标准的代码。 在线媒体播放--Google Vid…

.NET Core授权失败如何自定义响应信息?

【导读】在.NET 5之前&#xff0c;当授权失败即403时无法很友好的自定义错误信息&#xff0c;以致于比如利用Vue获取到的是空响应&#xff0c;不能很好的处理实际业务&#xff0c;同时涉及到权限粒度控制到控制器、Action&#xff0c;也不能很好的获取对应路由信息本文我们来看…

计算机电缆2x2x1.5,计算机电缆djypvp1x2x1.5

计算机电缆djypvp1x2x1.5硅橡胶计算机电缆适用于各种仪器仪表的连结&#xff0c; 以及信号传输。它具有耐高温、低温、耐腐蚀、舒缓老化等优点&#xff0c;对特殊场所或恶劣环境中的使用是目前理想的产品&#xff0c;正常使用温度为—60℃一250℃。产品特点:1.执行标准Q/ILXD-1…

jQuery实现等比例缩放大图片让大图片自适应页面布局

在布局页面时&#xff0c;有时会遇到大图片将页面容器“撑破”的情况&#xff0c;尤其是加载外链图片&#xff08;通常是通过采集的外站的图片&#xff09;。那么本文将为您讲述使用jQuery如何按比例缩放大图片&#xff0c;让大图片自适应页面布局。通常我们处理缩略图是使用后…

虚线 实现_redis跳跃表实现

跳跃表是一种有序的数据结构&#xff0c;它通过在每个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。redis 使用跳跃表作为有序集合键的底层实现之一&#xff0c;如果一个有序集合包含的元素数量比较多&#xff0c;又或者有序集合中元素的成员是比…

当代家长现状。。 | 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源都市音酱&#xff09;太真实了↓ ↓ ↓

使用目录服务和 Visual C# .NET 向本地系统添加用户

创建示例1. 打开 Microsoft Visual Studio .NET&#xff0c;然后新建一个 Visual C# Console 应用程序项目。 2. 在“解决方案资源管理器”中&#xff0c;右键单击引用&#xff0c;然后单击添加引用。 3. 添加一个对 System.DirectoryServices.dll 程序集的引用。 4. 将 Clas…

Prometheus(一):Web服务环境监控

&#xfeff;写在前面现每个后端的同学的日常都在跟服务(接口)打交道&#xff0c;维护老的比较大单体应用、按业务拆得相对比较细的新服务、无论企业内部用的&#xff0c;面向用户的前端的服务。流量大的有流量小的&#xff0c;有重要的有不那么重要的。但是&#xff0c;不管怎…

自拟计算机作文100字,我的电脑作文100字五篇

我家有一台电脑&#xff0c;颜*是黑*的&#xff0c;电脑的作用是可以玩游戏&#xff0c;还可以查自己不懂的问题。有一次&#xff0c;爸爸和妈妈不在家&#xff0c;我就先做完作业&#xff0c;在做作业的时有一道题我不知道怎么做&#xff0c;于是&#xff0c;我上百度上一搜&a…

acwing Linux 租云服务器环境配置

今天给大家讲解acwing Linux 租云服务器&环境配置&#xff0c;这里以阿里云为例子给大家讲解一下如何租用这个云服务器&#xff0c;现在有阿里云、华为云、腾讯云、京东云这么几个大的服务系统&#xff0c;我个人是喜欢华为云的嘻嘻&#xff0c;因为个人比较喜欢华为公司&a…

Shell练习题(持续更新)

1.输出1-10echo {1..10} seq -s 1 10 #默认分隔符\n for((i1;i<10;i));do echo -n "$i ";done;echo #最后echo为了换行 i1;while [ $i -le 10 ];do printf "%s " $i;i$[$i1];done;echo awk BEGIN{for(i1;i<10;i) printf "%s ",i;};…

楼层效果_1一28高楼最好最吉利的楼层是哪层?选楼层要注意什么?

在选择房屋楼层的时候&#xff0c;可能大家对于想过了&#xff0c;方法是比较纠结的&#xff0c;有些家庭可能考虑到室内的采光问题&#xff0c;有些可能考虑的是噪音的问题&#xff0c;更有些朋友们可能考虑的是室内的风水等相关问题&#xff0c;那么1一28高楼最好最吉利的楼层…

43秒处竟惊现刘强东!印度动作大片《WAR》终极预告曝光

全世界只有3.14 % 的人关注了青少年数学之旅都说印度是一个非常奇妙的国度&#xff0c;文能Z教治国&#xff0c;武能高产神片。科学家们骂骂咧咧地退出了群聊...这不&#xff0c;前不久印度又曝光了一部动作大片《WAR》&#xff1a;电影的剧情大概是讲述了一名印度士兵被派去消…

C# 极限压缩 dotnet core 控制台发布文件

每次发布 dotnet core 应用都会觉得发布文件太大&#xff0c;而如果使用极限压缩&#xff0c;用 CoreRT 能让发布的控制台文件到 5KB 左右&#xff0c;不需要带框架就能在其他设备运行这是微软 MichalStrehovsky 大佬&#xff0c;也就是 CoreRT 项目开发者给的方法在开始写代码…

按id进行查找按名称进行排序_Excel工作表中如何按需要的顺序快速进行排序

在工作中&#xff0c;有时候需要经常对一组内容按一定的顺序来进行排序。如果每次都手动进行排序&#xff0c;会小号很多时间。因此可以将特定顺序添加到自定义序列中。有两种不同的操作方法可以来实现。方法一如图&#xff0c;现在有一列水果名称&#xff0c;之后需要都按照现…

ajax 返回flase,Django request.is_ajax返回false

小编典典我不知道你怎么了 我测试并取得了良好的消息&#xff1a;This is ajax。我的代码&#xff1a;urls.pyurl(r^$, myapp.views.home, namehome),url(r^ajax_test/$, myapp.views.ajax_test, nameajax_test),views.pydef home(request):return render_to_response(home.htm…