分布式缓存 - 缓存服务器 - 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);
}
}
}
}
分布式缓存 - 缓存服务器 - redis的更多相关文章
- 【原创】分布式之缓存击穿 【原创】自己动手实现静态资源服务器 【原创】自己动手实现JDK动态代理
[原创]分布式之缓存击穿 什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查 ...
- 如何用分布式缓存服务实现Redis内存优化
Redis是一种支持Key-Value等多种数据结构的存储系统,其数据特性是“ALL IN MEMORY”,因此优化内存十分重要.在对Redis进行内存优化时,先要掌握Redis内存存储的特性比如字符 ...
- Memcached-高性能的分布式内存缓存服务器
Memcached是高性能的分布式内存缓存服务器,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等, 由国外社区网站 LiveJou ...
- 分布式二级缓存组件实战(Redis+Caffeine实现)
前言 在生产中已有实践,本组件仅做个人学习交流分享使用.github:https://github.com/axinSoochow/redis-caffeine-cache-starter 个人水平有 ...
- Lind.DDD.Caching分布式数据集缓存介绍
回到目录 戏说当年 大叔原创的分布式数据集缓存在之前的企业级框架里介绍过,大家可以关注<我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器>,而今天主要对Lind.DDD.Cachin ...
- CYQ.Data V5 分布式自动化缓存设计介绍(二)
前言: 最近一段时间,开始了<IT连>创业,所以精力和写的文章多数是在分享创业的过程. 而关于本人三大框架CYQ.Data.Aries.Taurus.MVC的相关文章,基本都很少写了. 但 ...
- 缓存与ABP Redis Cache
缓存与ABP Redis Cache 为什么要用缓存 为什么要用缓存呢,说缓存之前先说使用缓存的优点. 减少寄宿服务器的往返调用(round-trips). 如果缓存在客户端或是代理,将减少对服务器的 ...
- 如何提高缓存命中率(Redis)
缓存命中率的介绍 命中:可以直接通过缓存获取到需要的数据. 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作.原因可能是由于缓存中根本不存在,或者缓存已经过期. 通常来讲 ...
- 网站缓存技术(Redis、Memcached、Ehcache)
Redis 是什么? 通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等等. 分类的标准也不一,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点 ...
- Mybatis的二级缓存、使用Redis做二级缓存
目录 什么是二级缓存? 1. 开启二级缓存 如何使用二级缓存: userCache和flushCache 2. 使用Redis实现二级缓存 如何使用 3. Redis二级缓存源码分析 什么是二级缓存? ...
随机推荐
- Jmeter函数助手36-P
P函数用于获取jmeter属性值.类似property函数 属性名称:填入jmeter的属性名称 默认值:缺省值,当获取属性值为空时则返回该值 1.填入属性名称获取属性值${__P(language, ...
- 7月24号python:库存管理
7月24号python:库存管理 题目: 仓库管理员以数组 stock 形式记录商品库存表.stock[i] 表示商品 id,可能存在重复.原库存表按商品 id 升序排列.现因突发情况需要进行商品 ...
- 【MySQL】拆分经纬度字段
数据结构: 表中一字段存储经度和纬度: +---------------------------+ | INSTALL_LOLA_NUM | +---------------------------+ ...
- 【Project】JS的Map对象前后交互问题
这是我在项目中写的一个Map对象: let map = new Map(); for (let i = 0; i < type_checked_value.length; i++) { let ...
- 使用pybind11为Python编写一个简单的C语言扩展模块
相关: 为Python编写一个简单的C语言扩展模块 在Pybind11 出现之前为Python编写扩展模块的方法有多种,但是并没有哪种方法被认为一定比其他的好,因此也就变得在为Python编写扩展模块 ...
- Linux离线安装Tomcat
系统环境: centos7.3.1611 openjdk version "1.8.0_102" apache-tomcat-9.0.36.tar.gz tomcat 安装 #链接 ...
- LaTeX 生成黑底白字的 PDF
最近需要深夜看论文,然而白底的 PDF 看久了眼睛很难受,想转换成黑底的.正好我有论文的 LaTeX 源码,因此可以直接编译黑底的 PDF 出来. 使用 darkmode 宏包 CTAN 上有一个 L ...
- 使用 crontab 设置 Homebrew 自动更新
本人有强迫症,希望自己电脑上安装的软件永远是最新的.App Store 有自动更新功能,然而 Homebrew 则没有自动更新的选项.每次手动更新的话时间长了又感觉麻烦.后来发现可以使用 cronta ...
- 如何选择 Linux 发行版
简介 要建立云服务器,首先需要安装操作系统.在现代环境中,几乎所有情况下都是指 Linux 操作系统.从历史上看,Windows 服务器和其他类型的 Unix 在特定的商业环境中都很流行,但现在几乎每 ...
- 查看 Linux 系统信息
查看系统信息 查看发行版信息 cat /etc/os-release lsb_release -a 查看公网 IP 地址 curl -4 icanhazip.com 查看系统架构 uname -m # ...