免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

MasaFramework -- 緩存入門(mén)與規(guī)則配置

概念什么是緩存,在項(xiàng)目中,為了提高數(shù)據(jù)的讀取速度,我們會(huì)對(duì)不經(jīng)常變更但訪問(wèn)頻繁的數(shù)據(jù)做緩存處理,我們常用的緩存有:

  • 本地緩存
    • 內(nèi)存緩存:IMemoryCache
  • 分布式緩存
    • Redis: StackExchange.Redis
功能目前,MasaFramework為我們提供了以下能力
  • IDistributedCacheClient: 分布式緩存
    • Masa.Contrib.Caching.Distributed.StackExchangeRedis: 基于StackExchange.Redis實(shí)現(xiàn)的分布式緩存
  • IMultilevelCacheClient: 多級(jí)緩存
    • Masa.Contrib.Caching.MultilevelCache: 基于內(nèi)存緩存以及分布式緩存實(shí)現(xiàn)的多級(jí)緩存,支持監(jiān)控緩存變更,分布式緩存更新后相應(yīng)的內(nèi)存緩存也會(huì)同步更新,避免命中過(guò)時(shí)的內(nèi)存緩存導(dǎo)致獲取錯(cuò)誤的數(shù)據(jù),同時(shí)也盡可能的將多個(gè)副本的內(nèi)存緩存保持同步
入門(mén)
  • 前提條件:安裝.NET 6.0
分布式緩存
  1. 新建ASP.NET Core 空項(xiàng)目Assignment.DistributedCache,并安裝Masa.Contrib.Caching.Distributed.StackExchangeRedis
dotnet new web -o Assignment.DistributedCachecd Assignment.DistributedCachedotnet add package Masa.Contrib.Caching.Distributed.StackExchangeRedis --version 0.6.0-rc.5
  1. 配置Redis配置信息
{"RedisConfig":{"Servers":[{"Host":"localhost","Port":6379}],"DefaultDatabase":3,"ConnectionPoolSize":10}}
  1. 注冊(cè)分布式緩存,并使用Redis緩存,修改Program.cs
【MasaFramework -- 緩存入門(mén)與規(guī)則配置】var builder = WebApplication.CreateBuilder(args);//注冊(cè)分布式緩存builder.Services.AddDistributedCache(distributedCacheOptions =>{distributedCacheOptions.UseStackExchangeRedisCache();//使用分布式Redis緩存, 默認(rèn)使用本地`RedisConfig`下的配置});
使用分布式緩存的數(shù)據(jù)來(lái)源默認(rèn)為 IOptionsMonitor<RedisConfigurationOptions>,如果本地未正確在RedisConfig節(jié)點(diǎn)配置緩存信息,且項(xiàng)目中也沒(méi)有通過(guò)其它方式配置使其支持選項(xiàng)模式,則默認(rèn)使用的Redis配置為: 地址: localhost、端口:6379,密碼:空,數(shù)據(jù)庫(kù):db0
  1. 新建User類,用于接收用戶信息
public class User{public string Name { get; set; }public int Age { get; set; }}
  1. 如何使用IDistributedCacheClient,修改Program.cs
// 設(shè)置緩存app.MapPost("/set/{id}", async (IDistributedCacheClient distributedCacheClient, [FromRoute] string id, [FromBody] User user) =>{await distributedCacheClient.SetAsync(id, user);return Results.Accepted();});// 獲取緩存app.MapGet("/get/{id}", async (IDistributedCacheClient distributedCacheClient, [FromRoute] string id) =>{var value = https://www.huyubaike.com/biancheng/await distributedCacheClient.GetAsync(id);return Results.Ok(value);});多級(jí)緩存
  1. 新建ASP.NET Core 空項(xiàng)目Assignment.DistributedCache,并安裝Masa.Contrib.Caching.MultilevelCacheMasa.Contrib.Caching.Distributed.StackExchangeRedis
dotnet new web -o Assignment.MultilevelCachecd Assignment.MultilevelCachedotnet add package Masa.Contrib.Caching.MultilevelCache --version 0.6.0-rc.5dotnet add package Masa.Contrib.Caching.Distributed.StackExchangeRedis --version 0.6.0-rc.5
  1. 注冊(cè)多級(jí)緩存,并使用分布式Redis緩存,修改Program.cs
var builder = WebApplication.CreateBuilder(args);//注冊(cè)多級(jí)緩存builder.Services.AddMultilevelCache(distributedCacheOptions =>{distributedCacheOptions.UseStackExchangeRedisCache();//使用分布式Redis緩存});
  1. 新建User類,用于接收用戶信息
public class User{public string Name { get; set; }public int Age { get; set; }}

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀