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

服務(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 再保存

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产乱码久久久久久软件 | 青青成人福利国产在线视频 | 日本午夜小视频 | 禁忌4中文 | 疯狂伦交1一6小说 | 91国产高清 | 精品在线小视频 | 国产拍拍拍免费专区在线观看 | 国产精彩对白综合视频 | 白丝爆动漫羞羞动漫网站 | 国产精品久久久久毛片 | 国产成人影院在线观看 | 青青草国产一区二区三区 | 草莓香蕉榴莲丝瓜秋葵绿巨人在线看 | 欧美区在线 | 国产精品免费久久久久影院小说 | 亚洲高清视频在线观看 | 久久精品免视看国产 | 日韩欧美国产一区 | 精品久久一 | 欧美怡红院视频一区二区三区 | 国产精品福利久久2020 | 日本大尺度动漫在线观看缘之空 | 日本在线视频免费看 | 美女的隐私视频免费看软件 | 天天爽天天干天天操 | 免费在线观看小视频 | 国产精品久久久久a影院 | 狠狠色婷婷日日综合五月 | 日本人成动漫网站在线观看 | 日本高清视频网站www | 日本激情小说 | 成人午夜爽爽爽免费视频 | 日韩精品视频美在线精品视频 | 全弄乱纶小说 | 九色PORNY蝌蚪视频首页 | 国产极品精频在线观看 | 亚洲国产成人资源在线桃色 | 千金肉奴隶在线观看 | 国产成人一区二区三区 | 国产片自拍 |