Mds.Libraries.CSharp.Db.Redis 3.2.1
Mds.Libraries.CSharp.Db.Redis
Пакет для более удобной работы с Redis.
Пакет содержит:
- Репозиторий и фабрику для работы с Redis
- Расширенный
HealthCheckдля Redis - Механизм для конфигурации подключения через
IRedisConfigurationOptionsHandler - Решение для реализации DistibutedLock -
IDistributedLocker - Решение для реализации Key-Value Storage -
KeyValueStorage
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.
KeyValueStorage
В пакете реализован сервис, который позволяет хранить данные в Redis в виде пары ключ-значение. Для пары можно задать время её хранения.
Подключить его можно через DI.
// ...
services.AddMdsKeyValueStorage(ConnectionStrings.Redis);
// ...
После этого в DI появится сервис IKeyValueStorage, с помощью которого можно хранить данные в ключ-значение хранилище.
HealthCheck
В проекте реализован расширенный HealthCheck, который позволяет проверить все хосты, которые указаны в строке подключения. И проверить доступность каждого хоста из строки подключения. В AddHealthChecks можно указать с какой политикой будет выполняться проверка Redis на доступность (см. подробнее в Mds.Libraries.CSharp.Server.Health.Tools).
var redisConnectionString = /* ... */;
services.AddHealthChecks()
.AddMdsRedisHealthCheck(
redisConnectionString: redisConnectionString,
policy: MdsHealthCheckPolicy.Any,
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 |
.NET 7.0
- Mds.Libraries.CSharp.Abstractions (>= 2.0.1)
- Mds.Libraries.CSharp.Extensions (>= 3.0.0)
- Mds.Libraries.CSharp.Server.Health.Tools (>= 2.3.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 7.0.13)
- Newtonsoft.Json (>= 13.0.3)
- RedLock.net (>= 2.3.2)
- StackExchange.Redis (>= 2.6.104)
| 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 |