StackExchange.Redis.RedisTimeoutException-由于qs,人们如何解决它?

时间:2019-03-06 17:30:54

标签: c# asp.net-core redis .net-core stackexchange.redis

我有一些较大的有效载荷进入redis(最大40 kb)。

  

StackExchange.Redis.RedisTimeoutException:执行SETEX cachekeyID(5000ms)的超时,inst:1,qs:11,in:2837,serverEndpoint:servername:6380,mgr:10 of 10 available,clientName:419c1daaa93f,IOCP:(Busy = 0,Free = 1000,Min = 1,Max = 1000),WORKER:(Busy = 39,Free = 32728,Min = 1,Max = 32767),v:2.0.519.65453(请查看本文以了解一些可能导致超时的常见客户端问题:https://stackexchange.github.io/StackExchange.Redis/Timeouts

您如何解决此问题?通过按建议对密钥进行分块或通过打开多个ConnectionMultiplexer并自己处理池,如果要在一个对调用者透明的通用解决方案的接口后面进行操作,这两项任务都不是那么简单?

1 个答案:

答案 0 :(得分:0)

有时候,我也遇到过同样的问题,redis超时。 下面的更改解决了我的问题。

  1. 使用Linux服务器代替Redis服务器
  2. 在获取和设置操作时使用命令标志,而在获取操作中使用
    CommandFlags.PreferSlave和While设置使用 CommandFlags.FireAndForget。
  3. 根据应用程序更改processModel 服务器配置more
  4. 禁用redis持久性more description here