欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET 9 中的 多級緩存 HybridCache示例詳解

 更新時間:2024年12月26日 10:39:43   作者:快樂非自愿  
HybridCache是.NET9中引入的一種新的緩存模型,它封裝了本地緩存和分布式緩存,簡化了緩存操作并提供了標(biāo)簽刪除和約束選項,本文給大家介紹.NET 9 中的 多級緩存 HybridCache,感興趣的朋友一起看看吧

HybridCache是什么

在 .NET 9 中,Microsoft 將 HybridCache 帶入了框架體系。

HybridCache 是一種新的緩存模型,設(shè)計用于封裝本地緩存和分布式緩存,使用者無需擔(dān)心選擇緩存類型,從而優(yōu)化性能和維護(hù)效率。

實際上,HybridCache 基于 IDistributedCache 提供的接口和操作,但增加了一些其他的特性,如封裝兩類不同緩存庫(本地和分布),支持標(biāo)簽刪除(Tag-based Cache Eviction)和約束選項。

需要注意的是,HybridCache仍處于preview階段。

HybridCache 與 IDistributedCache 的區(qū)別

IDistributedCache:

  • 僅支持分布式緩存,如 Redis、SQL Server、MemoryCache。
  • 選擇依賴于目標(biāo)緩存和管理設(shè)備。
  • 不支持標(biāo)簽刪除,只能基于鍵值操作。

HybridCache:

  • 支持封裝本地和分布式緩存,在讀取時優(yōu)先讀取本地緩存,如本地不存在,再讀取分布式。
  • 支持標(biāo)簽刪除,通過指定標(biāo)簽管理緩存內(nèi)容。
  • 選項更加精簡,支持自動化操作和選項約束。

HybridCache 的好處

  • 性能優(yōu)化: 本地緩存速度超過分布式,使用 HybridCache 可以減少讀取分布緩存庫時的延遲。
  • 精簡化工程: 使用者不需再自行核實選擇哪個緩存,增加了工程效率。
  • 標(biāo)簽管理: 緩存標(biāo)簽記錄不同類型數(shù)據(jù),便于分類管理和刪除緩存。
  • 安全性: 支持選項約束,使緩存操作更嚴(yán)格,防止錯誤使用和內(nèi)容虧失。

代碼示例

以下代碼展示如何使用 HybridCache:

1. 添加緩存服務(wù)

var builder = WebApplication.CreateBuilder(args);
// 注冊 HybridCache 服務(wù)
builder.Services.AddHybridCache();
// 注冊 Redis 緩存服務(wù),為 HybridCache 提供分布式緩存
builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = builder.Configuration.GetConnectionString("RedisConnectionString");
});
builder.Services.AddControllers();

2. 實現(xiàn)接口操作

讀取緩存

[HttpGet("GetCache")]
public async Task<string[]> Get()
{
    return await _cache.GetOrCreateAsync(
        "a-1", async cancel => await Task.FromResult(Summaries)
    );
}

刪除緩存

[HttpGet("DeleteCache")]
public async Task<bool> Delete()
{
    await _cache.RemoveAsync("a-1");
    return true;
}

通過標(biāo)簽讀取緩存

[HttpGet("GetCacheByTag")]
public async Task<string[]> GetCacheByTag()
{
    var tags = new List<string> { "tag1", "tag2", "tag3" };
    var entryOptions = new HybridCacheEntryOptions
    {
        Expiration = TimeSpan.FromMinutes(1),
        LocalCacheExpiration = TimeSpan.FromMinutes(1)
    };
    return await _cache.GetOrCreateAsync(
        "a-1", async cancel => await Task.FromResult(Summaries),
        entryOptions, tags
    );
}

通過標(biāo)簽刪除緩存

[HttpGet("DeleteCacheByTag")]
public async Task<bool> DeleteCacheByTag()
{
    var tags = new List<string> { "tag1" };
    await _cache.RemoveByTagAsync(tags);
    return true;
}

小結(jié)

.NET 9 的 HybridCache 提供了一種便捷且高效的緩存解決方案,將本地緩存和分布式緩存無縫結(jié)合,為開發(fā)者簡化了緩存邏輯,同時提供了更多高級功能,如標(biāo)簽管理和選項約束。通過代碼示例可以看出,HybridCache 的操作直觀且易于實現(xiàn),非常適合現(xiàn)代應(yīng)用場景。

如果你正在使用 .NET 9,嘗試將 HybridCache 應(yīng)用于你的項目中,體驗其高效與簡潔!

文章轉(zhuǎn)載自:chester·chen

原文鏈接:https://www.cnblogs.com/chenyishi/p/18626831

體驗地址:引邁 - JNPF快速開發(fā)平臺_低代碼開發(fā)平臺_零代碼開發(fā)平臺_流程設(shè)計器_表單引擎_工作流引擎_軟件架構(gòu)

到此這篇關(guān)于.NET 9 中的 多級緩存 HybridCache的文章就介紹到這了,更多相關(guān).NET 多級緩存 HybridCache內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • .NET Core授權(quán)失敗自定義響應(yīng)信息的操作方法

    .NET Core授權(quán)失敗自定義響應(yīng)信息的操作方法

    這篇文章主要介紹了.NET Core授權(quán)失敗自定義響應(yīng)信息的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • Visual Studio 2017中找回消失的“在瀏覽器中查看”命令

    Visual Studio 2017中找回消失的“在瀏覽器中查看”命令

    這篇文章主要為大家詳細(xì)介紹了如何在Visual Studio 2017中找回消失的“在瀏覽器中查看”命令,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Entity?Framework管理一對一實體關(guān)系

    Entity?Framework管理一對一實體關(guān)系

    本文詳細(xì)講解了Entity?Framework管理一對一實體關(guān)系的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • .net驗證碼的刷新或局部刷新的方法實例

    .net驗證碼的刷新或局部刷新的方法實例

    .net驗證碼的刷新或局部刷新的方法實例,下面是實例,需要的朋友可以參考一下
    2013-03-03
  • linq中的分組操作符

    linq中的分組操作符

    這篇文章介紹了linq中的分組操作符,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • asp.net自定義控件回發(fā)數(shù)據(jù)實現(xiàn)方案與代碼

    asp.net自定義控件回發(fā)數(shù)據(jù)實現(xiàn)方案與代碼

    在實現(xiàn)asp.net的自定義控件中,若要實現(xiàn)數(shù)據(jù)的回發(fā)或者post數(shù)據(jù),那自義控件必須實現(xiàn)IPostBackDataHandler接口, 在該接口中有兩個方法一個是LoadPostData,另一個是RaisePostDataChangedEvent,需要的朋友可以了解下
    2012-12-12
  • asp.net 臟字典過濾問題 用正則表達(dá)式來過濾臟數(shù)據(jù)

    asp.net 臟字典過濾問題 用正則表達(dá)式來過濾臟數(shù)據(jù)

    asp.net 臟字典過濾問題 用正則表達(dá)式來過濾臟數(shù)據(jù)
    2009-10-10
  • .NetCore實現(xiàn)上傳多文件的示例詳解

    .NetCore實現(xiàn)上傳多文件的示例詳解

    本章和大家分享的是.NetCore的MVC框架上傳文件的示例,主要講的內(nèi)容有:form方式提交上傳,ajax上傳,ajax提交+上傳進(jìn)度效果,Task并行處理+ajax提交+上傳進(jìn)度,對大家非常有幫助,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2017-04-04
  • ASP.NET的適配器設(shè)計模式(Adapter)應(yīng)用詳解

    ASP.NET的適配器設(shè)計模式(Adapter)應(yīng)用詳解

    有關(guān)設(shè)計模式的適配器模式(Adapter)確實不是很好理解理解,接下來將做一個簡單的例子簡要說明下,感興趣的朋友可不要錯過了哈,希望本文可以幫助到你更好的理解適配器設(shè)計模式
    2013-02-02
  • .NET Core中使用Redis與Memcached的序列化問題詳析

    .NET Core中使用Redis與Memcached的序列化問題詳析

    這篇文章主要介紹了.NET Core中使用Redis與Memcached的序列化問題的相關(guān)內(nèi)容,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03

最新評論