RedisDB выдает исключение тайм-аута при попытке выполнить flushdb

У меня проблема со StackExchange.Redis. В нашем процессе у нас есть две базы данных Redis. Эти базы данных используются для хранения аналогичной информации, которую пользователь может выполнять для поиска, поэтому мы переключаемся между ними при импорте, чтобы пользователь мог постоянно получать доступ к информации. Ежедневно в одну базу данных вставляется около 50000000 записей, а старые записи удаляются из другой, чтобы подготовить ее к импорту на следующий день. Записи импортируются партиями по 100 000 записей. Проблема, с которой мы столкнулись, заключается в том, что после завершения импорта данных Redis выдает исключение при попытке выполнить команду flushdb.

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()

То, как я пытаюсь выполнить эту команду,

private async Task FlushDb(int dbIndex)
{
    await getDB(dbIndex).ExecuteAsync("flushdb");
}

Любая помощь будет принята с благодарностью, потому что я застрял в этом уже довольно давно. Для справки, я пытался получить здесь несколько ответов, но ничего не смог понять https://stackexchange.github.io/StackExchange.Redis/Timeouts.html


person brainpow3r    schedule 15.01.2020    source источник


Ответы (1)


Что ж, кажется, мне как-то удалось решить проблему, но я не слишком углублялся в ее причины. Короче говоря, увеличение syncTimeout, похоже, помогло, и исключение больше не выдается. Этот поток был полезен в моем случае. ?

person brainpow3r    schedule 15.01.2020