Mds.Libraries.CSharp.Db.Redis 2.2.1

Mds.Libraries.CSharp.Db.Redis

Пакет для более удобной работы с Redis.

Пакет содержит:

  • Репозиторий и фабрику для работы с Redis
  • Расширенный HealthCheck для Redis
  • Механизм для конфигурации подключения через IRedisConfigurationOptionsHandler

IRedisConnectionsFactory

Для работы с Redis может использоваться IRedisConnectionsFactory.

Пример подключения:

var redisConnectionString = /* ... */;
services.AddMdsRedisConnectionsFactory(redisConnectionString);

После этого можно будет получить IRedisConnectionsFactory через DI.

Расширения для IDatabase

Для упрощенной работы с IDatabase есть методы расширения, которые позволяют читать и писать сразу объекты.

IDatabase database = /* ... */;

var key = "key";
var data = new Entity();

database.SetComplex(key, data);
await database.SetComplexAsync(key, data);

var stored = database.GetComplex<Entity>(key);
stored = await database.GetComplexAsync<Entity>(key);

Использование DistributedLock через IDistributedLocker

В пакете реализован сервис, который позволяет реализовать паттерн DistributedLock.

Подключить его можно через в DI.

var redisConnectionString = /* ... */;
services.AddMdsDistributedLock(redisConnectionString);

После этого можно будет получить IDistributedLocker через DI.

Сервис реализован на базе пакета RedLockNet.

HealthCheck

В проекте реализован расширенный HealthCheck, который позволяет проверить все хосты, которые указаны в строке подключения. И проверить доступность каждого хоста из строки подключения.

Настройка HealthCheck, должно решить проблему отсутвия базы данных, если она еще не создана.


var redisConnectionString = /* ... */;

services.AddHealthChecks()

        .AddMdsRedisHealthCheck(
            redisConnectionString: redisConnectionString, 
            name: "RedisHealthCheck", 
            tags: new[] { "db", "redis" });

// ...

// Обязательно надо добавить сервис для проверки доступности Redis
services.AddMdsRedisHealthCheckServices();

Конфигурация через IRedisConfigurationOptionsHandler

Этот механизм позволяет конфигурировать подключение к Redis. Этот механизм используется для подготовки подключения в IRedisConnectionsFactory и AddMdsRedisHealthCheck. Основной кейс применения, для которого это было разработано - конфигурация проверки удаленного TLS сертификата.

Пример использования

Готовим обработчик:

internal class SampleConfigurationOptionsHandler : IRedisConfigurationOptionsHandler
{

    public SampleConfigurationOptionsHandler() { }
    

    #region IRedisConfigurationOptionsHandler

    void IRedisConfigurationOptionsHandler.Configure(ConfigurationOptions configurationOptions)
    {
        // ...
    }

    #endregion IRedisConfigurationOptionsHandler
}

Регистрируем обработчик в DI:

services.AddTransient<IRedisoConnectionSettingsHandler, SampleConfigurationOptionsHandler>();

После данных манипуляций этот обработчик будет инстанцирован, когда необходимо будет сконфигурировать подключение через DI. Обработчиков может быть много. Отработает каждый.

Showing the top 20 packages that depend on Mds.Libraries.CSharp.Db.Redis.

Packages Downloads
Expero.Libraries.CSharp.BackgroundTasks
Пакет для работы с фоновыми задачами.
1
Expero.Libraries.CSharp.BackgroundTasks
Пакет для работы с фоновыми задачами.
2

Version Downloads Last updated
3.2.1 1 02/28/2026
3.2.0 1 02/28/2026
3.2.0-beta.110725 1 02/28/2026
3.1.0 1 02/28/2026
3.1.0-beta.101934 1 02/28/2026
3.1.0-beta.98932 1 02/28/2026
3.1.0-beta.98434 1 02/28/2026
3.0.1 1 02/28/2026
3.0.0 1 02/28/2026
3.0.0-beta.66939 1 02/28/2026
2.5.0-beta.11789 1 02/28/2026
2.2.1 1 02/28/2026
2.2.0 1 02/28/2026
2.0.0 1 02/28/2026
1.3.0-beta.8498 1 02/28/2026
1.2.1 1 02/28/2026
1.2.0 1 02/28/2026
1.1.2 1 02/28/2026