开源博客项目Blog .NET Core源码学习(8:EasyCaching使用浅析)
开源博客项目Blog使用EasyCaching模块实现缓存功能,主要是在App.Framwork项目中引用了多类包,包括内存缓存(EasyCaching.InMemory)、Redis缓存(EasyCaching.CSRedis),同时支持多种序列化方式(EasyCaching.Serialization.Json、EasyCaching.Serialization.MessagePack)。

在App.Hosting项目的Program.cs文件中,调用AddEasyCaching函数注册EasyCaching服务,同时根据当前项目appsettings.json的SysConfig块中UseRedis参数设置采用redis缓存(值为true)或内存缓存(值为false),同时在appsettings.json的easycaching块中设置redis及内存缓存的相关参数。

整个解决方案中共有以下几处用到EasyCaching:
1)App.Application项目的SysPermissionService类,该类使用IEasyCachingProvider接口缓存访问权限、访问菜单等信息,缓存有效期为1天;
2)App.Core项目的SqlSugarCache类,该类用于ORM缓存,主要在注册SqlSugar服务时调用,如下图所示:

3)App.Framwork项目的AspectCoreInterceptorAutofacExtensions类,该类用于注册EasyCaching相关的类,如DefaultEasyCachingKeyGenerator、EasyCachingInterceptor,但后续的用途没有看的太明白。
参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://easycaching.readthedocs.io/en/latest/
相关文章:
开源博客项目Blog .NET Core源码学习(8:EasyCaching使用浅析)
开源博客项目Blog使用EasyCaching模块实现缓存功能,主要是在App.Framwork项目中引用了多类包,包括内存缓存(EasyCaching.InMemory)、Redis缓存(EasyCaching.CSRedis),同时支持多种序列化方式&am…...
windows下docker的使用
目录 1:docker是什么,能干什么? 2:docker下初始化一个容器 1:工具支持 2:运行装载docker镜像 a:在docker toolbox底下有个start.sh,我们进去里面修改里面路径配置: …...
C语言——R/预处理详解
一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&a…...
Unity_PackageManager缺失
Unity_PackageManager缺失 Unity早期版本不带PakageManager,或是人为因素造成PakageManager缺失。 关闭Unity工程,在项目文件下Packages文件夹里打开manifest.json,修改添加一行: "com.unity.package-manager-ui": &q…...
Megatron-LM源码系列(七):Distributed-Optimizer分布式优化器实现Part2
1. 使用入口 DistributedOptimizer类定义在megatron/optimizer/distrib_optimizer.py文件中。创建的入口是在megatron/optimizer/__init__.py文件中的get_megatron_optimizer函数中。根据传入的args.use_distributed_optimizer参数来判断是用DistributedOptimizer还是Float16O…...
[SWPUCTF 2021 新生赛]ez_unserialize
根据下面的user_agent和Disallow可以判断这个是在robots.txt 我们看的出来这是一个反序列化需要我们adminadmin passwdctf construct 构造方法,当一个对象被创建时调用此方法,不过unserialize()时却不会被调用 destruct 析构方法,PHP将在对象…...
android tv开发-1,leanback 2
目录 presenter太多,如何理清关系 动画与点击 tv的登录与设置 搜索功能 带二级菜单的页面 presenter太多,如何理清关系 leanback里面已经定义好了adapter与presenter,直接继承它就可以了 private DefaultObjectAdapter mVideoAdapter; private VideoCardPresenter mCardP…...
Spring Boot注解
Spring Boot提供了许多常用的注解,用于简化开发过程和配置管理。以下是一些常用的Spring Boot注解: SpringBootApplication: 标记一个类为Spring Boot应用程序的入口点,同时也是一个组合注解,包括了Configuration、EnableAutoConf…...
JavaWeb中的Filter(过滤器)和 Listener(监听器)
提示:这两个东西听起来似乎很难,实际上是非常简单的,按照要求写就行了,一定不要被新名词给吓到了。 JavaWeb中的Filter(过滤器) 一、Filter(过滤器)1.如何编写 Filter2.Filter 中的细…...
mybatis查询修改mysql的json字段
前言: mysql5.7版本之后支持json字段类型,推荐mysql8版本,适用于属性不确定的个性化字段,比如: 身份信息{“职业”,“学生”,“兴趣”:“打乒乓球”,“特长”:“跳高,书法”}; 图片信息{“日期”:“2023-12-12 22:12”…...
实时聊天系统
这个系统可以用于网站的即时通讯,比如客服系统、在线社区等。这个功能不仅对用户友好,而且也是检验技术实现能力的一个很好的案例。 ### 功能概述 该系统允许用户在网站上实时发送和接收消息。为了保持实时性,我们将使用PHP进行服务器端的逻…...
Spring-mvc、Spring-boot中如何在调用同类方法时触发AOP
1. 问题描述 Spring-mvc和Spring-boot中aop可以实现代理的功能,我们可以借此实现事务和日志记录或者限流等多种操作。但是,如果你在一个方法中调用其同类下的其他方法的时候不会触发AOP。本文主要说明其原因及解决办法和实现原理。 2. 原因 AIOP的本质是…...
幻兽帕鲁服务器自动重启备份-python
幻兽帕鲁服务器自动重启备份-python 1. 前置知识点2. 目录结构3. 代码内容4. 原理解释5. 额外备注 基于python编写的服务器全自动管理工具,能够实现自动定时备份存档,以及在检测到服务器崩溃之后自动重新启动,并且整合了对于frp端口转发工具的…...
C# Onnx yolov8 水表读数检测
目录 效果 模型信息 项目 代码 训练数据 下载 C# Onnx yolov8 水表读数检测 效果 模型信息 Model Properties ------------------------- date:2024-01-31T10:18:10.141465 author:Ultralytics task:detect license:AGPL-…...
负载均衡下webshell连接
目录 一、什么是负载均衡 分类 负载均衡算法 分类介绍 分类 均衡技术 主要应用 安装docker-compose 2.1上传的文件丢失 2.2 命令执行时的漂移 2.3 大工具投放失败 2.4 内网穿透工具失效 3.一些解决方案 总结 一、什么是负载均衡 负载均衡(Load Balanc…...
Spring面试大全-基础知识01
1.什么是Spring Spring框架是用于构建企业级Java的开源框架,他通过依赖注入和IOC容器帮我我们管理对象;支持AOP,将非业务功能(日志,事务等)从我们业务代码中分离出来,提高了代码的可维护性&…...
Transformer实战-系列教程4:Vision Transformer 源码解读2
🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 4、Embbeding类 self.embeddings Embeddings(config, img_sizeimg_size) class Embeddings(nn.…...
cesium-水平测距
cesium测量两点间的距离 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item&…...
【Android-Compose】手势检测实现按下、单击、双击、长按事件,以及避免频繁单击事件的简单方法
目录: 1 不需要双击事件 规避频繁单击事件2 需要双击事件(常规写法)3 后记:不建议使用上面的代码自定义按钮 1 不需要双击事件 规避频繁单击事件 var firstClickTime by remember { mutableStateOf(System.currentTimeMillis()…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于神经网络的CAN总线负载率优化(续)
目录 3.3 SA 算法 3.3.1 SA 算法原理 3.3.2 基于 SA 算法 CAN 总线负载率优化分析...
5大核心功能解锁QuickBMS:从二进制解析到跨领域数据提取的实战指南
5大核心功能解锁QuickBMS:从二进制解析到跨领域数据提取的实战指南 【免费下载链接】QuickBMS QuickBMS by aluigi - Github Mirror 项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS 问题导入:当你面对无法打开的神秘文件时,…...
音乐自由解决方案:Listen1音乐聚合工具使用指南
音乐自由解决方案:Listen1音乐聚合工具使用指南 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_extension 你是否曾…...
DroidCam手机变电脑摄像头工具
DroidCam 这款免费工具,能让你的安卓或iPhone瞬间变成电脑的无线/USB摄像头。无论是开Zoom会议、上网课还是直播,画质直接碾压普通电脑摄像头。优点很明显:零成本:利用闲置旧手机,省下买新摄像头的钱。画质好ÿ…...
Greasy Fork:开源用户脚本平台如何重塑你的浏览器体验
Greasy Fork:开源用户脚本平台如何重塑你的浏览器体验 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 在当今互联网时代,浏览器已成为我们获取信息、处理工作的核心…...
MySQL主从复制、高可用集群架构详解
一、复制(Replication) MySQL Replication是官方提供的主从同步方案,也是用的最广的同步方案。Replication(复制)使来自一个 MySQL数据库服务器(称为源(Source))的数据能够复制到一个或多个 My…...
别再暴力求素数了!用C++实现埃氏筛和欧拉筛,性能提升百倍(附完整代码)
素数筛法性能优化实战:从暴力枚举到欧拉筛的百倍飞跃 在算法竞赛和工程开发中,素数筛选是一个经典问题。当数据规模达到百万级别时,传统的暴力枚举方法往往力不从心。本文将深入探讨三种素数筛选算法——暴力枚举、埃拉托斯特尼筛法ÿ…...
Go的unsafe.Pointer与uintptr:手动内存管理的风险与收益
Go语言以其简洁的内存管理模型著称,但标准库中的unsafe包却为开发者提供了手动操作内存的能力。unsafe.Pointer与uintptr这两个类型,允许绕过Go的类型安全检查,直接与底层内存交互。这种能力虽然强大,却也伴随着极高的风险。本文将…...
python pyinstaller
# 关于 PyInstaller,一位 Python 老手的随想 最近在整理一些旧项目,又用到了 PyInstaller 这个工具。说起来,它算是 Python 开发中一个既熟悉又容易被忽视的存在。很多开发者第一次接触它,往往是为了把写好的脚本发给不会装 Pytho…...
云原生应用的可观测性最佳实践
云原生应用的可观测性最佳实践 🔥 硬核开场 各位技术老铁,今天咱们聊聊云原生应用的可观测性最佳实践。别跟我扯那些理论,直接上干货!在云原生时代,可观测性是系统可靠性的关键,它能帮助我们全面了解系统…...
JAVA无人自助TKV小程序源码实现方案及开源代码片段
无人自助TKV小程序需支持用户自助点歌、支付、设备控制等功能。采用uniapp框架实现跨平台兼容性(微信小程序/H5/Android/iOS),后端使用Spring BootMySQL。关键技术包括:uniapp前端:Vue.js语法uView UI微信支付/支付宝支…...
