Reo.Core.MemoryCache
10.0.30
dotnet add package Reo.Core.MemoryCache --version 10.0.30
NuGet\Install-Package Reo.Core.MemoryCache -Version 10.0.30
<PackageReference Include="Reo.Core.MemoryCache" Version="10.0.30" />
<PackageVersion Include="Reo.Core.MemoryCache" Version="10.0.30" />
<PackageReference Include="Reo.Core.MemoryCache" />
paket add Reo.Core.MemoryCache --version 10.0.30
#r "nuget: Reo.Core.MemoryCache, 10.0.30"
#:package Reo.Core.MemoryCache@10.0.30
#addin nuget:?package=Reo.Core.MemoryCache&version=10.0.30
#tool nuget:?package=Reo.Core.MemoryCache&version=10.0.30
Reo.Core.MemoryCache
Описание пакета
Reo.Core.MemoryCache — это библиотека для реализации кэширования данных в приложениях на C#, которая интегрируется с Redis для обеспечения высокой доступности и масштабируемости. Пакет решает проблему управления кэшем в распределённых системах, предоставляя возможность хранения данных в памяти и синхронизации через Redis. Основные функции включают:
- Кэширование справочных и несправочных данных с настраиваемыми таймингами.
- Поддержку Redis для отказоустойчивости и масштабирования.
- Валидацию конфигурации с помощью FluentValidation.
- Интеграцию с ASP.NET Core через Dependency Injection (DI).
Основные компоненты
ReoMemoryCacheОсновной класс для работы с кэшем. Обеспечивает методы для получения, установки и удаления данных из кэша с поддержкой Redis как резервного хранилища.IDistributedCacheLockИнтерфейс для управления блокировками в распределённых системах, используя Redis для синхронизации доступа к ресурсам.ReoMemoryCacheOptionsКласс для настройки параметров кэша (тайминги для справочных и несправочных данных).ReoMemoryCacheOptionsValidatorВалидатор конфигурации, проверяющий корректность настроек кэша при регистрации в DI.
Требования
- .NET версии: 8.0, 9.0.
- Зависимости:
Microsoft.Extensions.DependencyInjectionMicrosoft.Extensions.ConfigurationMicrosoft.Extensions.Caching.Redis(черезAddRedisвServiceCollectionExtensions).
Установка
Установите пакет через NuGet:
Install-Package Reo.Core.MemoryCache
или:
dotnet add package Reo.Core.MemoryCache
Настройка
Регистрация в ASP.NET Core
Конфигурация Добавьте настройки в
appsettings.json:{ "ReoMemoryCacheOptions": { "ReferenceData": { "AbsoluteExpiration": "00:10:00", "SlidingExpiration": "00:05:00" }, "NonReferenceData": { "AbsoluteExpiration": "00:30:00" } } }Регистрация в DI В
Program.csилиStartup.cs:services.RegisterReoMemoryCache(Configuration);
Использование
Пример 1: Кэширование справочных данных
public class ReferenceDataService
{
private readonly IReoMemoryCache _cache;
public ReferenceDataService(IReoMemoryCache cache)
{
_cache = cache;
}
public async Task<List<string>> GetReferenceDataAsync()
{
var key = "reference_data_key";
return await _cache.GetOrSetAsync(key, async () =>
{
// Получение данных из источника
return await FetchDataFromDatabaseAsync();
}, ReoMemoryCacheOptions.ReferenceData);
}
}
Пример 2: Использование блокировки
public class DistributedLockService
{
private readonly IDistributedCacheLock _lock;
public DistributedLockService(IDistributedCacheLock lockProvider)
{
_lock = lockProvider;
}
public async Task PerformLockedOperationAsync()
{
var lockKey = "distributed_lock_key";
using (await _lock.LockAsync(lockKey, TimeSpan.FromSeconds(30)))
{
// Критическая секция, защищённая блокировкой
await ProcessDataAsync();
}
}
}
Лицензия
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AspNetCore.HealthChecks.Redis (>= 9.0.0)
- AspNetCore.HealthChecks.UI.Client (>= 9.0.0)
- FluentValidation (>= 12.1.1)
- FluentValidation.AspNetCore (>= 11.3.1)
- Flurl (>= 4.0.0)
- Flurl.Http (>= 4.0.2)
- JetBrains.Annotations (>= 2025.2.4)
- LinqKit.Core (>= 1.2.9)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 10.0.2)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.2)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.2)
- Microsoft.Extensions.Configuration (>= 10.0.2)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Http.Polly (>= 10.0.2)
- Microsoft.Extensions.Logging (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Options (>= 10.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.2)
- NEST (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.4)
- Polly (>= 8.5.0)
- RedLock.net (>= 2.3.2)
- Reo.Core.DistributedCache (>= 10.0.30)
- Reo.Core.Validation (>= 10.0.30)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- Swashbuckle.AspNetCore (>= 10.1.2)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Linq.Async (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.30 | 0 | 2/12/2026 |
| 10.0.29 | 0 | 2/12/2026 |
| 10.0.28 | 31 | 2/11/2026 |
| 10.0.27 | 31 | 2/11/2026 |
| 10.0.26 | 81 | 2/9/2026 |
| 10.0.25 | 78 | 2/9/2026 |
| 10.0.24 | 77 | 2/9/2026 |
| 10.0.23 | 78 | 2/9/2026 |
| 10.0.22 | 76 | 2/9/2026 |
| 10.0.21 | 76 | 2/9/2026 |
| 10.0.20 | 75 | 2/9/2026 |
| 10.0.15 | 83 | 2/6/2026 |
| 10.0.14 | 81 | 2/6/2026 |
| 10.0.13 | 82 | 2/4/2026 |
| 10.0.12 | 82 | 2/3/2026 |
| 10.0.11 | 100 | 2/2/2026 |
| 10.0.10 | 94 | 1/29/2026 |
| 10.0.9 | 98 | 1/29/2026 |
| 10.0.8 | 101 | 1/27/2026 |
| 10.0.6 | 89 | 1/26/2026 |