如何解决StackExchange.Redis超时处理
我已经构建了一个基本的Redis适配器,该适配器在大多数情况下都可以工作。
适配器本身很轻巧
public RedisAdapter(string connectionString,int database)
{
_redisConnection = ConnectionMultiplexer.Connect(connectionString);
_db = _redisConnection.GetDatabase(database);
}
public async Task<string> ListLeftPopAsync(string key)
{
var result = await _db.ListLeftPopAsync(key);
return result;
}
的简单用法是:
var redisAdapter = new RedisAdapter("localhost:6379,password=12345,syncTimeout=3000,abortConnect=false",1);
var request = await redisAdapter.ListLeftPopAsync(RedisKeys.MyKey);
我注意到我偶尔会超时,例如以下错误:
Timeout awaiting response (outbound=0KiB,inbound=0KiB,3703ms elapsed,timeout is 3000ms),command=LPOP,next: LPOP PriorityEmailSenderList,inst: 0,qu: 0,qs: 1,aw: False,rs: DequeueResult,ws: Idle,in: 0,in-pipe: 5,out-pipe: 0,serverEndpoint: Unspecified/localhost:6379,mgr: 9 of 10 available,clientName: WIN-JN03113EBLE,IOCP: (Busy=0,Free=1000,Min=1,Max=1000),WORKER: (Busy=1,Free=32766,Max=32767),v: 2.0.601.3402
syncTimeout
和abortConnect
以外的所有内容均为默认设置。目前,我已将syncTimeout
更改为5000,因为该错误似乎表明该操作花费了3703ms(超过阈值703ms),但是有些错误显示该操作花费了9500ms,这对我来说似乎有点长。欢迎其他建议!
有什么建议可以使超时处理更健壮?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。