首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试执行flushdb时,RedisDB引发超时异常

尝试执行flushdb时,RedisDB引发超时异常
EN

Stack Overflow用户
提问于 2020-01-15 16:06:09
回答 1查看 129关注 0票数 0

我对StackExchange.Redis有个问题。在我们的过程中,我们有两个redis数据库。这些数据库用于存储用户可以对其执行查找的相似信息,因此我们在导入时在它们之间进行切换,以便用户可以连续访问这些信息。每天大约有50000000条记录被插入到一个数据库中,而从另一个数据库中删除旧记录,以便为第二天的导入做好准备。记录批量导入,每批导入100000条记录。我们面临的问题是,数据导入完成后,Redis在尝试执行flushdb命令时抛出异常。

代码语言:javascript
复制
StackExchange.Redis.RedisTimeoutException Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5976ms elapsed, timeout is 5000ms), command=UNKNOWN, next: SELECT, inst: 0, qu: 0, qs: 2, aw: False, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: 127.0.0.1:6379, mgr: 10 of 10 available, clientName: MX-ENUM-VM, IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=3,Free=32764,Min=2,Max=32767), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)    at Project.Synchronizer.Service.RedisHelper.FlushDb(Int32 dbIndex)
    at Project.Synchronizer.Service.RedisHelper.SelectAndClearRedisDbForNumberUpload()
    at Project.Synchronizer.Service.RedisHelper.UploadNumbers()
    at Project.Synchronizer.Service.DataUploadService.UploadNumbersToRedis() StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5976ms elapsed, timeout is 5000ms), command=UNKNOWN, next: SELECT, inst: 0, qu: 0, qs: 2, aw: False, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: 127.0.0.1:6379, mgr: 10 of 10 available, clientName: CLIENT-ENUM-VM, IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=3,Free=32764,Min=2,Max=32767), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
    at Project.Synchronizer.Service.RedisHelper.FlushDb(Int32 dbIndex)
    at Project.Synchronizer.Service.RedisHelper.SelectAndClearRedisDbForNumberUpload()
    at Project.Synchronizer.Service.RedisHelper.UploadNumbers()
    at Project.Synchronizer.Service.DataUploadService.UploadNumbersToRedis()

我尝试执行此命令的方式是

代码语言:javascript
复制
private async Task FlushDb(int dbIndex)
{
    await getDB(dbIndex).ExecuteAsync("flushdb");
}

任何形式的帮助都会非常感谢,因为我已经被困在这个问题上很长一段时间了。根据记录,我试图在这里得到一些答案,但无法弄明白任何东西https://stackexchange.github.io/StackExchange.Redis/Timeouts.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-15 19:12:45

嗯,似乎我设法解决了这个问题,但没有深入研究是什么导致了它。长话短说,增加syncTimeout似乎有帮助,异常不再抛出。这个帖子在我的案例stackexchange.redis throws timeout even after increasing timeout?中很有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59747227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档