看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
2023/12/26 1:03:22
本文主要是介绍看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
缓存是提升程序性能必不可少的方法,Asp.net core 支持多级缓存配置,主要有客户端缓存、服务器端缓存,内存缓存和分布式缓存等。其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓和分布式缓存则比较灵活。
分布式缓存是一种用于存储和管理数据的技术,它将数据存储在多个节点上,以实现高可用性、伸缩性和性能优化。
分布式缓存通常用于大规模的应用程序中,可以有效地减轻数据库负载,加速数据访问,提高系统的可靠性和性能。
分布式缓存的特点包括:
-
高可用性:分布式缓存采用多节点部署,数据被复制到多个节点上,即使某个节点发生故障,仍然可以从其他节点获取数据,保证系统的高可用性。
-
性能优化:分布式缓存将热门数据存储在内存中,加快数据的访问速度,减少对数据库的频繁访问,从而提高系统的性能。
-
数据一致性:分布式缓存通过复制、分片和一致性哈希等技术,确保多个节点上的数据保持一致。
-
伸缩性:分布式缓存可以根据负载情况动态扩展,以应对不断增长的数据量和访问量,新的节点可以很容易地加入到缓存集群中,以提供更大的存储容量和更高的性能。
常见的分布式缓存系统包括 Redis、Memcached、Ehcache 等,可以方便地在应用程序中集成和使用。
本篇主要讲解在 asp.net core net6.0 webapi 项目中如何利用 Redis 来实现分布式缓存。
使用步骤
-
下载和安装 Redis
- https://redis.io/download/
-
打开 Program.cs 文件
-
在语句
var app = builder.Build();
之前注册内存缓存服务var builder = WebApplication.CreateBuilder(args); ...... //注册分布式缓存服务 builder.Services.AddStackExchangeRedisCache(options => { // 配置 Redis 连接串 options.Configuration = "127.0.0.1:16379,allowadmin=true"; // 配置缓存Key前缀,避免和其它程序冲突,因为Redis可能其它程序也在使用 options.InstanceName = "test_"; }); ...... var app = builder.Build();
-
打开控制器文件,如 Test1Controller.cs
-
引入分布式缓存命名空间
using Microsoft.Extensions.Caching.Distributed;
-
在构造方法注入内存缓存服务,如:
private readonly IDistributedCache distCache; public Test1Controller(IDistributedCache distCache) { this.distCache = distCache; }
-
通过分布式缓存的GetString和SetString方法缓存数据,如:
[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); //设置绝对过期时间 distCache.SetString(cacheKey, s, opt); } return s; }
小技巧
- 代码中,分布式缓存只支持 String 和 byte[],如果非 String 可以用 Json 把它反序列化为 String 再保存
这篇关于看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具