VOOZH about

URL: https://www.nuget.org/packages/Iskra.Core.Cache/

⇱ NuGet Gallery | Iskra.Core.Cache 1.0.136




Iskra.Core.Cache 1.0.136

dotnet add package Iskra.Core.Cache --version 1.0.136
 
 
NuGet\Install-Package Iskra.Core.Cache -Version 1.0.136
 
 
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Iskra.Core.Cache" Version="1.0.136" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Iskra.Core.Cache" Version="1.0.136" />
 
Directory.Packages.props
<PackageReference Include="Iskra.Core.Cache" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Iskra.Core.Cache --version 1.0.136
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Iskra.Core.Cache, 1.0.136"
 
 
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Iskra.Core.Cache@1.0.136
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Iskra.Core.Cache&version=1.0.136
 
Install as a Cake Addin
#tool nuget:?package=Iskra.Core.Cache&version=1.0.136
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Iskra.Core.Cache

Обзор

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

Основные Компоненты

  1. Конфигурация Кэша

    • IskraCacheOptionsPostConfigure: Обеспечивает пост-конфигурацию опций кэша на основе конфигурационных файлов (например, appsettings.json).
    • ServiceCollectionExtensions.AddIskraCache: Метод расширения для регистрации сервисов кэширования в контейнере зависимостей.
  2. Фабрика Опций Кэша

    • IskraCacheOptionsFactory: Предоставляет методы для получения настроек кэша для конкретных типов сущностей, проверяя их наличие и корректность.
  3. Сервис Кэширования

    • IskraDistributedCache: Реализует интерфейс IIskraDistributedCache для работы с распределенным кэшем.
      • Методы:
        • GetAsync<TCacheEntity>: Извлекает данные из кэша по ключу, десериализует их и возвращает объект типа TCacheEntity.
        • SetAsync<TCacheEntity>: Сериализует объект TCacheEntity и сохраняет его в кэше с заданными опциями истечения времени жизни.
  4. Интерфейсы

    • IIskraCacheOptionsFactory: Определяет методы для получения настроек кэша для конкретных типов сущностей.
    • IIskraDistributedCache: Определяет методы для работы с распределенным кэшем, включая получение и установку данных.
  5. Абстракции

    • ICacheEntity: Маркерный интерфейс, его должны реализовывать все сущности, которые могут быть закэшированы.

Функциональные Возможности

  1. Конфигурируемость

    • Настройки кэша определяются в конфигурационных файлах приложения.
    • Поддержка различных стратегий истечения времени жизни (абсолютное и слайдинговое).
  2. Распределенное Кэширование

    • Использование распределенного кэша для хранения данных, что позволяет масштабировать приложение без потери доступности кэшированных данных.
  3. Типобезопасность

    • Методы GetAsync и SetAsync параметризованы типом сущности, обеспечивая безопасность типов и упрощающую работу с данными из кэша.
  4. Обработка Ошибок

    • Исключения NoCacheDataException и OptionsValidationException предоставляют информацию о проблемах при работе с кэшем или отсутствии настроек.

Использование

Для использования библиотеки необходимо:

  1. Добавить пакет в проект.
  2. Зарегистрировать сервисы кэширования в контейнере зависимостей:
    using Microsoft.Extensions.DependencyInjection;
    
    public class Startup
    {
     public void ConfigureServices(IServiceCollection services)
     {
     // Другие регистрации сервисов
    
     services.AddIskraCache();
     }
    }
    
    
  3. Настроить опции кэша в appsettings.json или другом конфигурационном файле.
{
 "IskraCacheOptions": {
 "User": {
 "Prefix": "user",
 "AbsoluteExpirationRelativeToNow": "01:00:00",
 "SlidingExpiration": "00:30:00"
 },
 "Product": {
 "Prefix": "product",
 "AbsoluteExpirationRelativeToNow": "02:00:00",
 "SlidingExpiration": "01:00:00"
 }
 }
}

  1. Создать классы сущностей, которые будут кэшироваться:
 public class User : ICacheEntity
 {
 public int Id { get; set; }
 public string Name { get; set; }
 }

 public class Product : ICacheEntity
 {
 public int Id { get; set; }
 public string Name { get; set; }
 public decimal Price { get; set; }
 }

  1. Внедрять и использовать интерфейс IIskraDistributedCache для работы с кэшем.
 using Microsoft.AspNetCore.Mvc;
 using System.Threading.Tasks;

 [ApiController]
 [Route("api/[controller]")]
 public class CacheController : ControllerBase
 {
 private readonly IIskraDistributedCache _cache;

 public CacheController(IIskraDistributedCache cache)
 {
 _cache = cache;
 }

 [HttpGet("user/{id}")]
 public async Task<IActionResult> GetUser(int id)
 {
 var user = await _cache.GetAsync<User>(id);
 if (user == null)
 {
 return NotFound();
 }
 return Ok(user);
 }

 [HttpPost("user")]
 public async Task<IActionResult> SetUser([FromBody] User user)
 {
 await _cache.SetAsync(user.Id, user);
 return CreatedAtAction(nameof(GetUser), new { id = user.Id }, user);
 }

 [HttpGet("product/{id}")]
 public async Task<IActionResult> GetProduct(int id)
 {
 var product = await _cache.GetAsync<Product>(id);
 if (product == null)
 {
 return NotFound();
 }
 return Ok(product);
 }

 [HttpPost("product")]
 public async Task<IActionResult> SetProduct([FromBody] Product product)
 {
 await _cache.SetAsync(product.Id, product);
 return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
 }
 }

Заключение

Библиотека предоставляет удобный и гибкий способ управления распределенным кэшированием в приложениях .NET, обеспечивая конфигурируемость, типобезопасность и надежность работы с кэшем.

Product Versions Compatible and additional computed target framework versions.
.NET net8.0 net8.0 is compatible.  net8.0-android net8.0-android was computed.  net8.0-browser net8.0-browser was computed.  net8.0-ios net8.0-ios was computed.  net8.0-maccatalyst net8.0-maccatalyst was computed.  net8.0-macos net8.0-macos was computed.  net8.0-tvos net8.0-tvos was computed.  net8.0-windows net8.0-windows was computed.  net9.0 net9.0 was computed.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 was computed.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Iskra.Core.Cache:

Package Downloads
Iskra.Core.Auth.InvitationToken

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.136 323 12/16/2025
1.0.135 168 12/12/2025
1.0.134 389 11/17/2025
1.0.133 383 11/17/2025
1.0.132 294 11/14/2025
1.0.131 242 11/6/2025
1.0.130 241 11/5/2025
1.0.129 217 10/31/2025
1.0.128 217 10/31/2025
1.0.127 203 10/31/2025
1.0.126 230 10/21/2025
1.0.125 232 10/16/2025
1.0.124 198 9/26/2025
1.0.123 228 9/24/2025
1.0.122 275 8/28/2025
1.0.121 293 8/26/2025
1.0.120 354 8/25/2025
1.0.119 263 8/21/2025
1.0.118 228 8/19/2025
1.0.117 227 8/18/2025
Loading failed