一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 看看 Asp.net core Webapi 項目如何優(yōu)雅地使用分布式緩存

看看 Asp.net core Webapi 項目如何優(yōu)雅地使用分布式緩存

2023-12-26 00:02未知服務(wù)器之家 ASP.NET教程

前言 緩存是提升程序性能必不可少的方法,Asp.net core 支持多級緩存配置,主要有客戶端緩存、服務(wù)器端緩存,內(nèi)存緩存和分布式緩存等。其中客戶端緩和服務(wù)器端緩存在使用上都有比較大的限制,而內(nèi)存緩和分布式緩存則比較靈

看看 Asp.net core Webapi 項目如何優(yōu)雅地使用分布式緩存

前言

緩存是提升程序性能必不可少的方法,Asp.net core 支持多級緩存配置,主要有客戶端緩存、服務(wù)器端緩存,內(nèi)存緩存和分布式緩存等。其中客戶端緩和服務(wù)器端緩存在使用上都有比較大的限制,而內(nèi)存緩和分布式緩存則比較靈活。

分布式緩存是一種用于存儲和管理數(shù)據(jù)的技術(shù),它將數(shù)據(jù)存儲在多個節(jié)點上,以實現(xiàn)高可用性、伸縮性和性能優(yōu)化。

分布式緩存通常用于大規(guī)模的應(yīng)用程序中,可以有效地減輕數(shù)據(jù)庫負載,加速數(shù)據(jù)訪問,提高系統(tǒng)的可靠性和性能。

分布式緩存的特點包括:

  1. 高可用性:分布式緩存采用多節(jié)點部署,數(shù)據(jù)被復(fù)制到多個節(jié)點上,即使某個節(jié)點發(fā)生故障,仍然可以從其他節(jié)點獲取數(shù)據(jù),保證系統(tǒng)的高可用性。

  2. 性能優(yōu)化:分布式緩存將熱門數(shù)據(jù)存儲在內(nèi)存中,加快數(shù)據(jù)的訪問速度,減少對數(shù)據(jù)庫的頻繁訪問,從而提高系統(tǒng)的性能。

  3. 數(shù)據(jù)一致性:分布式緩存通過復(fù)制、分片和一致性哈希等技術(shù),確保多個節(jié)點上的數(shù)據(jù)保持一致。

  4. 伸縮性:分布式緩存可以根據(jù)負載情況動態(tài)擴展,以應(yīng)對不斷增長的數(shù)據(jù)量和訪問量,新的節(jié)點可以很容易地加入到緩存集群中,以提供更大的存儲容量和更高的性能。

常見的分布式緩存系統(tǒng)包括 Redis、Memcached、Ehcache 等,可以方便地在應(yīng)用程序中集成和使用。

本篇主要講解在 asp.net core net6.0 webapi 項目中如何利用 Redis 來實現(xiàn)分布式緩存。

使用步驟

  1. 下載和安裝 Redis

    • https://redis.io/download/
  2. 打開 Program.cs 文件

  3. 在語句 var app = builder.Build(); 之前注冊內(nèi)存緩存服務(wù)

    var builder = WebApplication.CreateBuilder(args);
    ......
    //注冊分布式緩存服務(wù)
    builder.Services.AddStackExchangeRedisCache(options => {
        // 配置 Redis 連接串
        options.Configuration = "127.0.0.1:16379,allowadmin=true";
    
        // 配置緩存Key前綴,避免和其它程序沖突,因為Redis可能其它程序也在使用
        options.InstanceName = "test_";
    });
    ......
    var app = builder.Build();
    
  4. 打開控制器文件,如 Test1Controller.cs

  5. 引入分布式緩存命名空間

    using Microsoft.Extensions.Caching.Distributed;
    
  6. 在構(gòu)造方法注入內(nèi)存緩存服務(wù),如:

    private readonly IDistributedCache distCache;
    
      public Test1Controller(IDistributedCache distCache)
      {
          this.distCache = distCache;
      }
    
  7. 通過分布式緩存的GetString和SetString方法緩存數(shù)據(jù),如:

    [HttpGet]
    public string Now()
    {
        var cacheKey = "Now";
        string? s = distCache.GetString(cacheKey);
        if (s == null)
        {
            s = DateTime.Now.ToString();
            var opt = new DistributedCacheEntryOptions();
            opt.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(10);    //設(shè)置絕對過期時間
            distCache.SetString(cacheKey, s, opt);
        }
        return s;
    }
    

小技巧

  • 代碼中,分布式緩存只支持 String 和 byte[],如果非 String 可以用 Json 把它反序列化為 String 再保存

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 3d动漫美女被吸乳羞羞有 | 精品国产乱码久久久人妻 | 亚洲第一男人网站 | 免费91麻豆精品国产自产在线观看 | 三极黄色| 久久精品嫩草影院免费看 | 亚洲欧美国产精品久久久 | 国产在线视频福利 | 日本激情小说 | 我的青梅竹马是消防员2季未增删免费 | 91进入蜜桃臀在线播放 | 亚洲天堂网站 | 黑人biglackon10十 | 全彩调教侵犯h本子全彩妖气he | 日本在线观看www | 日韩一本在线 | free性videoxxⅹ印度 | 视频一区国产精戏刘婷30 | 91精品国产麻豆国产自产在线 | 门房秦大爷在线阅读 | 亚洲www美色| 精品一区二区三区自拍图片区 | 4444亚洲国产成人精品 | 校花的第一次好紧好爽 | 色中色导航 | 大肥女zzz00o| 无敌秦墨漫画免费阅读 | 亚洲成色爱我久久 | 91在线精品国产丝袜超清 | 欧美一区二区三区四区在线观看 | 久久99精国产一区二区三区四区 | 亚洲AV无码专区国产精品麻豆 | 好吊妞乱淫 | 色国产视频 | 国产欧美日韩在线不卡第一页 | 精品第一国产综合精品蜜芽 | 男人晚上适合偷偷看的污污 | 蜜色网| 亚洲 欧美 日韩 综合 | 亚洲欧美日韩一区成人 | 精品国产日韩一区三区 |