.NET 6 Web API and Redis
У меня есть приложение ASP.NET Core WEb API(.NET 6) с сгенерированным кодом в Visual Studiо. Туда я пытаюсь подключить Redis для кеширования. Но когда я патюсь сделать запрос к Redis, то возникает ошибка. Ниже будут примеры кода для работы с Redis:
Program.cs
var configurationOptions = new ConfigurationOptions
{
EndPoints = { "redis://default:redispw@localhost:49153" },
Ssl = true,
AbortOnConnectFail = false,
};
var multiplexer = ConnectionMultiplexer.Connect(configurationOptions);
builder.Services.AddSingleton<IConnectionMultiplexer>(multiplexer);
WeatherForecastController.cs
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
private readonly IConnectionMultiplexer _cache;
public WeatherForecastController(ILogger<WeatherForecastController> logger, IConnectionMultiplexer cache)
{
_logger = logger;
_cache = cache;
}
[HttpGet(Name = "GetWeatherForecast")]
public async Task<IEnumerable<WeatherForecast>> Get()
{
string recordKey = "WeatherForecast_" + DateTime.Now.ToString("yyyyMMdd_hhmm");
var db = _cache.GetDatabase();
string jsonData = db.StringGet(recordKey);
List<WeatherForecast> weatherForecastArray = JsonSerializer.Deserialize<List<WeatherForecast>>(jsonData);
if (weatherForecastArray is null)
{
weatherForecastArray = Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
}).ToList();
jsonData = JsonSerializer.Serialize(weatherForecastArray);
db.StringSet(recordKey, jsonData);
}
return weatherForecastArray;
}
Скриншот с информацией о контейнере из

Информация об ошибке:
Timeout performing GET (5000ms), inst: 0, qu: 1, qs: 0, aw: False, bw: SpinningDown, last-in: 0, cur-in: 0, serverEndpoint: redis://default:redispw@localhost:49153:6380, mc: 1/1/0, mgr: 10 of 10 available, clientName: LAPTOP-JI57EMI1(SE.Redis-v2.6.80.25426), IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=1,Free=32766,Min=8,Max=32767), POOL: (Threads=11,QueuedItems=0,CompletedItems=218), v: 2.6.80.25426 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
Ответы (1 шт):
Исходя из описания ошибки. Дело в конфигурации сервера, на котором стоит ваш Redis. Пропускной способности недостаточно. Нужно проверить сколько на сервере ОЗУ, так как редис это хранилище в памяти и ему нужно выделять хорошее кол-во ОЗУ. Также нужен более менее хороший CPU на сервере, на котором живет редис.