у нас есть приложение .net core 2.2, которое подключает сервер Redis, и оно работает нормально. Теперь нам нужно подключиться к другому redis в том же контроллере и обновить данные на обоих серверах.
public static void AddRedis2(this IServiceCollection services, IConfiguration configuration)
{
var configOptions = ConfigurationOptions.Parse(configuration["Redis2"]);
configOptions.ReconnectRetryPolicy = new ExponentialRetry(5);
var Connection = ConnectionMultiplexer.Connect(configOptions);
var Database = Connection.GetDatabase();
services.AddSingleton<IDatabase>(Database);
services.AddScoped<RedisCache2>();
services.AddScoped<Store2>();
}
public static void AddRedis1(this IServiceCollection services, IConfiguration configuration)
{
var configOptions = ConfigurationOptions.Parse(configuration["Redis1"]);
configOptions.ReconnectRetryPolicy = new ExponentialRetry(5);
var connection = ConnectionMultiplexer.Connect(configOptions);
var database = connection.GetDatabase();
services.AddSingleton<IDatabase>(database);
services.AddScoped<RedisCache1>();
services.AddScoped<Store1>();
}
services.AddRedis1(Configuration);
services.AddRedis2(Configuration);
public async Task<ActionResult<CreateResponse>> CreateAsync([FromForm] PostModel model, [FromServices]IConfiguration configuration, [FromServices] Store1 store1, [FromServices] Store2 store2)
{
}
Я ожидаю, что данные будут обновлены в двух хранилищах - Store1 и Store2 (ключи redis), но оба хранилищавозьмите экземпляр Redis2 и не обновите Store1.