Package Description
$ dotnet add package Reo.Core.DistributedCache.AbstractionsБиблиотека предоставляет абстракции и расширения для работы с распределённым кэшированием в .NET-приложениях. Она упрощает управление кэшем, обеспечивая типобезопасные операции, генерацию ключей и интеграцию с Redis. Пакет решает проблему сложного управления кэшем, позволяя разработчикам фокусироваться на бизнес-логике, а не на деталях реализации кэширования.
Microsoft.Extensions.Caching.StackExchangeRedis (для интеграции с Redis).Используйте следующие команды для установки пакета:
Install-Package Reo.Core.DistributedCache.Abstractions
или
dotnet add package Reo.Core.DistributedCache.Abstractions
Добавьте сервисы в Startup.cs или Program.cs:
services.AddStackExchangeRedisCache(options =>
{
options.Configuration = "localhost:6379";
options.InstanceName = "MyAppCache";
});
services.AddDistributedCache();
services.AddScoped<ICacheService, CacheService>();
Укажите настройки Redis в appsettings.json:
{
"Redis": {
"ConnectionString": "localhost:6379",
"InstanceName": "MyAppCache"
}
}
public class ProductService
{
private readonly ICacheService _cacheService;
public ProductService(ICacheService cacheService)
{
_cacheService = cacheService;
}
public async Task<Product> GetProductAsync(int id)
{
var key = id.BuildCacheKey<Product, int>();
return await _cacheService.GetTypedAsync<Product>(key);
}
public async Task SaveProductAsync(Product product)
{
var key = product.Id.BuildCacheKey<Product, int>();
await _cacheService.SetTypedAsync(key, product, TimeSpan.FromMinutes(10));
}
}
[CacheKeyPrefix("Products")]
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
// Ключ будет: "Products:123"
var key = 123.BuildCacheKey<Product, int>();var cache = new RedisCache();
var key = "user:123";
await cache.SetTypedAsync<User>(key, user, TimeSpan.FromHours(1));
var user = await cache.GetTypedAsync<User>(key);Этот пакет распространяется под лицензией MIT License. См. файл LICENSE для
подробностей.