首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

内存缓存MemoryCache

以下文章来源于智能大石头 ,作者智能大石头 内存缓存MemoryCache实现了ICache接口,Redis同样实现了ICache接口,两者在缓存操作上达到了高度抽象统一。...应用设计时一律使用ICache接口,开发环境装配为MemoryCache,生产环境根据分布式需要可以装配为Redis。如果应用系统没有分布式需求,继续使用MemoryCache更好。...超高性能 MemoryCache核心是并行字典ConcurrentDictionary,由于省去了序列化和网络通信,使得它具有千万级超高性能(普通台式机实测2.87亿tps)。...MemoryCache支持过期时间,默认容量10万个,未过期key超过该值后,每60秒根据LRU清理溢出部分。 常用于进程内千万级以下数据缓存场景。...缓存项未达到最大值Capacity时,MemoryCache定时检查并剔除过期项。

76220

谈谈MemoryCache原生插值方式

案例 我们都知道.NET运行时内置了常用缓存模块MemoryCache,它暴露了以下几个属性和方法: public int Count { get; } public void Compact(double...从代码中可以看出使用的是MemoryCache原生方法,但一般我们不这么用,而是使用位于同一命名空间的扩展方法 Set,代码如下: var s = new MemoryCache(new MemoryCacheOptions...为什么使用Dispose方法来向MemoryCache插值呢?这个问题在2017年开始就有人质疑这个设计,但是官方为了不引入Break Change,一直保持现状到现在。...因此根据现状,如果使用MemoryCache的原生插值方法,代码需要这么些: var s = new MemoryCache(new MemoryCacheOptions { }); using (var...总结 MemoryCache插值的实现过程很奇葩,我们应尽量使用带明确大括号范围的using语法,C#8.0推出的不带大括号的using语法糖的作用时刻在函数末尾,这会带来误解。

27030
领券