分布式缓存 - 缓存服务器 - redis
如果一般的缓存可以解决问题,就不必使用分布式缓存 ;
一般使用分布式缓存 都是使用 redis ;
使用教程:
1. 安装包 Microsoft.Extensions.Caching.StackExchangeRedis
2. 注册 redis 服务
// 注册 redis 缓存 builder.Services.AddStackExchangeRedisCache(option => { option.Configuration = "192.168.33.200"; option.InstanceName = "test"; /// 起一个名字避免混乱z's });
3. 在 controller DI注入接口
using ClassLibrary1; using ClassLibrary2; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging; using System.Text.Json; using WebApplication1.IServices; using WebApplication1.Utility.SwaggerExt; namespace WebApplication1.Controllers { [ApiController] [Route("[controller]")] [ApiExplorerSettings(IgnoreApi = false, GroupName = nameof(ApiVersions.frontAPI))] public class HomeController : ControllerBase { public readonly IDistributedCache distCache; public HomeController(IDistributedCache distCache) { this.distCache = distCache; } /// <summary> /// 测试缓存API /// 创建缓存 CreateEntry /// 删除缓存 Remove /// 获取换粗 TryGetValue /// </summary> /// <param name="i"></param> /// <param name="y"></param> /// <returns></returns> [HttpGet] public async Task<ActionResult<Book?>> GetBookById(long id) { Book? book; string s = await distCache.GetStringAsync("Book" + id); if(s == null) { // 没有缓存 从数据库获取信息 book = await MyDbContext.GetByIdAsync(id); // 存入缓存 SetStringAsync(key,string) distCache.SetStringAsync("Book" + id,JsonSerializer.Serialize(book)); }else { // 从缓存里面获取到了 s 反序列化得到 book = JsonSerializer.Deserialize<Book?>(s); } if(book == null) { return NotFound("不存在"); }else { return Ok(book); } } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
2022-10-24 vue本地项目启动时遇到coreJs相关报错问题处理