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,一经查实,立即删除!

相关文章

安卓手机如何复制粘贴不重叠_复制的文字粘贴时怎么重叠了 - 卡饭网

PS复制的文字粘贴时怎么重叠了PS复制的文字粘贴时怎么重叠了 在不同的地方复制来的文字,自带的格式很多都没有办法直接在ps里面保持得一模一样的,复制后的文字重叠在一起,是因为行距太小了,在ps里修改一下即可,方法如下: 把文字粘贴后,发现文字重叠: 点击界面上方的"窗口&…

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

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

Android之解决点击PopupWindow外部不消失并且不穿透事件

1 问题 需要实现PopupWindow内部可以点击,但是外部点击不会消失 2 初步解决办法 设置PopupWindow的mFocusable属性mOutsideTouchable属性,我们知道如果我们不想穿透事件,也就是说,不想出现点击Popuowindow外部的文本框或者按钮生效,我们需要获取Popuowindow的焦点,也就是设置…

地图投影系列介绍(三)----地图投影

4、地图投影 4.1 投影实质 将地球椭球面上的点映射到平面上的方法,称为地图投影。 为什么要进行投影? – 地理坐标为球面坐标,不方便进行距离、方位、面积等参数的量算。 – 地球椭球体为不可展曲面。 – 地图为平…

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

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

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

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

jquery动态改变图片

动态改变图片&#xff1a; var bb 1;var aa4; $("div[page" bb "] dd").eq(aa).children("img").attr("src", "images/zy_033.jpg") <div class"Pc4_con_list1" page"1"> <dl class"P…

2015 Spark 将走向哪里?

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

rocketmq还要eventbus_EventBus源码详解,看这一篇就够了

之前写过一篇关于EventBus的文章&#xff0c;大家的反馈还不错(EventBus3.0使用详解)&#xff0c;如果你还没有使用过EventBus&#xff0c;可以去那篇文章看看。当时刚接触EventBus,对它的理解也仅仅是停留在表面&#xff0c;写那篇文章也是记录下EventBus的一个简单的使用的过…

Android之library class android.webkit.WebViewClient depends on program class android.net.http.SslErro

1 问题 编译chromium的源代码的时候,在主类的actitivity里面插入了加载webview的代码 编译错误提示如下 library class android.webkit.WebViewClient depends on program class android.net.http.SslError 2 原因 日志看见有SslError,猜测应该是混淆导致,因为我们加的是web…

如何实现一个线程安全的 ConcurrentHashSet ?

咨询区 Sebastian在 .NET 框架中并没有线程安全的 ConcurrentHashSet 类&#xff0c;我想模仿 ConcurrentDictionary 来实现一个&#xff0c;目前写了一下桩代码。public class ConcurrentHashSet<TElement> : ISet<TElement> {private readonly ConcurrentDiction…

长江存储年底提供自研32层堆叠3D NAND闪存样品

据业内消息称&#xff0c;紫光集团旗下的长江存储技术公司&#xff08;YMTC&#xff09;正在规划开发自己的DRAM内存制造技术&#xff0c;而且可能直奔当今世界最先进的20&#xff0f;18nm工艺。 长江存储技术公司是紫光集团收购武汉新芯部分股权后更名而来的&#xff0c;并邀请…

地图投影系列介绍(四)----投影坐标系

4.4 我国常用地图投影  我国基本比例尺地形图(1:100万、1:50万、1:25万、1:10万、1:5万、1:2.5万、1:1万、1:5000)除1:100万以外均采用高斯-克吕格Gauss-Kruger投影(横轴等角切圆柱投影,又叫横轴墨卡托Transverse Mercator投影)为地理基础。 …

大学物理实验计算机仿真 光电效应,大学物理实验

前言第一章 大学物理实验概论第一节 绪论一、大学物理实验的地位和任务二、大学物理实验课的基本要求三、大学物理实验课的基本程序四、大学物理实验课规则第二节 物理量的测量一、测量与单位二、有效数字三、有效数字的运算规则四、测量的分类第三节 实验误差与不确定度一、实…

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

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

Android之You need to use a Theme.AppCompat theme (or descendant) with this activity.

1 问题 点击activity的时候,崩溃日志如下 You need to use a Theme.AppCompat theme (or descendant) with this activity. 2 原因 我类的activity是继承了有主题的activity,但是我在AndroidManifest.xml文件里面声明这个类的时候设置的主题如下 android:theme"android…

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

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

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

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

IDL中生成等差/等比数列的方法

等差数列: 生成差值为5,

计算机病毒是指______.,计算机病毒是指

语音内容&#xff1a;大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。计算机病毒是编制者在计算机程序中插入的破坏计算机功能或者数据的代码&#xff0c;能影响计算机使用&#xff0c;能自我复制的一组计算机指令或者程序代码。电…