CacheManager - 用 C# 编写的 .NET 的开源缓存抽象层

简介

CacheManager 是用 C# 编写的 .NET 的开源缓存抽象层。它支持各种缓存提供程序并实现了许多高级功能

CacheManager 是用 C# 编写的 .NET 的开源缓存抽象层。它支持各种缓存提供程序并实现了许多高级功能。

CacheManager 包的主要目标是让开发人员的生活更容易处理,即使是非常复杂的缓存场景。使用 CacheManager 可以实现多层缓存,例如在分布式缓存前的进程内缓存,只需几行代码。

CacheManager 不仅仅是一个统一各种缓存提供者的编程模型的接口,这将使以后在项目中更改缓存策略变得非常容易。它还提供其他功能,例如缓存同步、并发更新、序列化、事件、性能计数器……开发人员只有在需要时才可以选择加入这些功能。

功能列表

•一种处理不同缓存技术的通用接口:ICache•可配置•支持不同的缓存提供程序•现在可以配置序列化。仅在分布式缓存中才需要序列化。如果没有安装和配置额外的序列化包,将使用二进制序列化•使用分布式缓存的锁或事务更新值。•记录CacheManager 带有一个可扩展的记录 API•类型缓存接口。•多层 通过 CacheManager 管理多个缓存句柄,您可以轻松实现分层缓存•缓存区域:即使某些缓存系统不支持或不实现缓存区域,CacheManager 也会实现该机制。例如,这可用于对元素进行分组并一次删除所有元素。•统计信息:各种缓存操作的计数器。•性能计数器:为了能够检查某些数字perfmon,CacheManager 支持每个管理器实例和每个缓存句柄的性能计数器。•事件系统:CacheManager 触发常见缓存操作的事件:OnGet、OnAdd、OnPut、OnRemove、OnClear、OnClearRegion•System.Web.OutputCache实现使用 CacheManager 作为 OutputCache 提供者,这使得 OutputCache 非常灵活,例如通过在许多 Web 服务器上使用像 Redis 这样的分布式缓存。•缓存客户端同步 使用 Redis 发布/订阅功能实现

例子

private static void MostSimpleCacheManager(){var config = new ConfigurationBuilder().WithSystemRuntimeCacheHandle().Build();var cache = new BaseCacheManager<string>(config);// orvar cache2 = CacheFactory.FromConfiguration<string>(config);}
private static void EventsExample(){var cache = CacheFactory.Build<string>(s => s.WithDictionaryHandle());cache.OnAdd += (sender, args) => Console.WriteLine("Added " + args.Key);cache.OnGet += (sender, args) => Console.WriteLine("Got " + args.Key);cache.OnRemove += (sender, args) => Console.WriteLine("Removed " + args.Key);cache.Add("key", "value");var val = cache.Get("key");cache.Remove("key");}

Github地址

https://github.com/MichaCo/CacheManager 最后大家如果喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!

9250bc789c506d3e8798da54c9341fdb.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这些Intel Atom处理器千万别升Windows 10创意者更新:不兼容

Windows 10创意者更新已经发布&#xff0c;目前的升级方式包括使用Windows 10易升、官方临时链接和MSDNITELLYOU的直链。不过&#xff0c;微软已经给出警告&#xff0c;Intel Clover Trail家族的处理器暂时不支持Windows 10创意者更新&#xff0c;万勿升级&#xff0c;涉及的型…

华中科技大学计算机学院2020直博生名单,华中科技大学各院系2020年博士研究生“申请-考核”制拟录取名单公示...

原标题&#xff1a;华中科技大学各院系2020年博士研究生“申请-考核”制拟录取名单公示根据教育部相关通知要求&#xff0c;结合学校2020年博士“申请-考核”制招生录取工作实际&#xff0c;经各学院研究生招生工作领导小组审核&#xff0c;现陆续发布各院系博士研究生“申请-考…

文档大小超出上传限制怎么办_压缩PDF大小该怎么操作?压缩PDF的软件有哪些?...

压缩PDF大小该怎么操作&#xff1f;工作中使用的任何设备的储存空间都是有限制的&#xff0c;为了能让自己的电脑储存更多的文件&#xff0c;我们可以将多个PDF文件进行压缩再存储。那么我怎么压缩PDF文件呢&#xff1f;下面就小编就来告诉大家压缩PDF文件的好办法。方法一&…

2015 Spark 将走向哪里?

在刚刚过去的spark submit上&#xff0c;Matei Zahara简单回顾了下2014年spark的发展&#xff0c;可用一个词来概括那就是"Amazing"!!! 那么2015年&#xff0c;spark 将主要精力放在哪些方面呢&#xff1f; 一个是数据科学&#xff0c;即提供更高级的API接口&#xf…

char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...

今天和大家分享一个简单又好玩的Python项目–“图片转字符画”。废话不多说&#xff0c;先上一个效果图迷惑一下众生。没错的&#xff0c;图片转字符画就是将我们平常所看到的的图片根据像素RGB值和灰度值传化成一个个字符串的过程。嗯…听起来有些费脑子喔。没关系&#xff0c…

oom 如何避免 高并发_微博短视频百万级高可用、高并发架构如何设计?

本文从设计及服务可用性方面&#xff0c;详细解析了微博短视频高可用、高并发架构设计中的问题与解决方案。今天与大家分享的是微博短视频业务的高并发架构&#xff0c;具体内容分为如下三个方面&#xff1a;团队介绍微博视频业务场景“微博故事”业务场景架构设计团队介绍我们…

免费都不管用,Win10升级在中国怎么就这么难?

天下没有免费的午餐&#xff0c;如果有&#xff0c;那也是限时免费。不过&#xff0c;被地摊光盘浸淫十多年的中国民众&#xff0c;这次却对微软的免费分外冷淡。 就在7月26日这天&#xff0c;距离Windows 10免费升级还剩下最后三天&#xff0c;微软发了一份怨念深重的声明——…

在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET

在k8s 环境下&#xff0c;通过Operator 可以管理Dapr sidecar&#xff0c; 在虚拟机环境下&#xff0c;我们也是非常需要这样的一个管理组件&#xff0c;之前写的一篇文章《 在 k8s 以外的分布式环境中使用 Dapr》 里面介绍了一个案例Dapr case study: Man Group&#xff1a;ht…

sigmoid函数_常用的激活(激励)函数——深度学习笔记(建议收藏)

激活函数(又叫激励函数&#xff0c;后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力&#xff0c;神经网络的每层都会有一个激活函数。那他到底是什么&#xff0c;有什么作用&#xff1f;都有哪些常见的激活函数呢&#xff1f;深度学习的基本原理就是基于人工神经网络…

江苏信息考试access_软考 信息处理技术员备考复习攻略

如何备考信息技术处理员&#xff1f;在上午题和下午题中哪些知识点是重点难点&#xff1f;以下整理了信息处理技术员相关信息&#xff0c;祝所有考生们都能顺利通过考试。1上午考试试题分析上午试题含盖了纲中的信息技术基本概念、信息处理技术知识、计算机系统基础知识、操作系…

.NET6之MiniAPI(三十):结束篇(附链接)

不知不觉来到了《.NET6之MiniAPI》的第三十篇&#xff0c;回顾之前的篇幅&#xff0c;主要涉及如下&#xff1a;HTTP请求&#xff0c;应答Request桂素伟&#xff0c;公众号&#xff1a;桂迹.NET6之MiniAPI(二)&#xff1a;requestResponse桂素伟&#xff0c;公众号&#xff1a;…

xhr get获取文件流下载文件_python爬虫实战——豆瓣电影get初体验

影评许可证公众号[2019]第22期本栏目由“数据皮皮侠”独家呈献专场python爬虫实战——豆瓣电影get初体验2019.10.28 / 早上7点场 / 免费本期“栏目”的四大看点&#xff1a;1 如何爬取2 如何解析与提取3 如何解析json数据4 实战&#xff1a;爬取豆瓣影视信息1 如何爬取how to O…

商丘高中计算机考试成绩查询系统,2019商丘中考招生成绩查询时间及网站公布...

成绩发布&#xff1a;今年中招成绩满分仍为700分。7月8日&#xff0c;公布中招成绩。考生可以通过“商丘便民网”及手机APP客户端进行查询&#xff0c;也可以登陆省中招平台(http&#xff1a;//zk.haedu.gov.cn)和商丘市基础教育公共服务平台(http&#xff1a;//www.sqsedu.net…

双时隙的工作原理_OFDM调制技术原理是什么 OFDM调制实现原理介绍【图文】

无线通讯OFDM调制技术原理简介OFDM是现代宽带无线通信系统应用的技术。为了减少高数据率OFDM系统中各信道间影响带来的失真&#xff0c;引入循环前缀(CP)来消除码间干扰(ISI)。它将一个IFFT包的最后部分复制到OFDM符号序列的前端。注意&#xff0c;CP的长度必须长于色散信道的长…

Windows 11 新版 22593 发布:文件资源管理器全新主页,开始菜单图标优化

面向 Dev 和 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22593。主要变化1.微软为 Windows 11 文件资源管理器引入了全新的主页功能&#xff0c;集成了快速访问、收藏夹和最近使用的文件。2.Windows 11 “开始”菜单文件夹中的应用程序…

2015年最弱的密码,和最强的密码

网络安全公司SplashData如约发布了本年度最不安全的密码排行榜。这是他们连续第五年做这件事了。 根据2015年从各个渠道泄露出来的密码信息&#xff0c;最弱的密码被“123456”再次蝉联。这个“万年陈酿”的密码排名第一感觉毫无压力。 夺得第二名的是“password”。中国用户似…

ideaspringboot项目上传服务器_nuxt+pm2 自动化部署及打包后文件自动上传阿里云 oss

在读这篇文档时&#xff0c;希望你对 nuxt 及 pm2&#xff0c;有简单的了解nuxtpm2前期准备安装 pm2 及构建 nuxt$ npm i pm2 -g $ npx create-nuxt-app <项目名>ssh 密钥配置pm2 代码自动发布依赖于 git 工具&#xff0c;先将 ssh 密钥配置再你的代码仓库&#xff08;gi…

wait放弃对象锁_Java线程中wait、await、sleep、yield、join用法总结

一、wait()、notify()、notifyAll()用法obj.wait()/obj.wait(long timeout)是Object中的方法&#xff0c;当线程调用wait()方法&#xff0c;当前线程释放对象锁&#xff0c;进入等待队列。obj.notify()/obj.nogifyAll()是Object中的方法&#xff0c;唤醒在此对象上wait()的单个…

怎么找到项目中所有同名的类_26岁转行程序员的成长历程--Day03从内存层面理解类和对象...

今天学习了类、对象及相关知识&#xff0c;试着从内存角度分析三者关系&#xff0c;如果有不对的地方请指正首先得先介绍java中的三个内存区域&#xff1a;栈区用于存放该线程执行方法的信息&#xff08;实际参数、局部变量等&#xff09;。栈属于线程私有&#xff0c;不能实现…

pycharm提示your evalluation license has expired解决方法

安装pycharm&#xff0c;一段时间后提示your evalluation license has expired&#xff1a;打开pycharm--点击help--register--选中license server,输入license server address如图示即可 转载于:https://www.cnblogs.com/youtiaoge/p/7125070.html