详解C#中普通缓存的使用
一、首先,新建控制台程序(.net core)、以下为项目结构
- cachehelper缓存帮助类
- demotest 为测试有无缓存的demo代码
- program 你们懂得 就不多说了
二、编写缓存类
public static t getcache<t>(string key, func<t> func)
我这里直接使用泛型委托封装了缓存的方法了。当然你也可以不封装直接使用if else 判断
if (cachehelper.exsits(key)){} else{}
但是实际开发使用缓存应该不是一个地方使用缓存、频繁的使用if else 判断代码有点冗余、所有我就使用采用泛型委托方式封装方法 这个大家可以自行选择
以上一般采用静态字典添加缓存数据、为了有更好的兼容性我这里直接采用泛型(泛型的好处这里就不多说了、总之性能相对更好、能够提高代码的重用性)
三、编写有缓存和没有缓存方法
四、控制台上端调用
循环10万次有缓存消耗时间
循环10万次没有有缓存消耗时间
以上为循环10万次验证后分析:以上消耗时间为毫秒、有缓存 22282毫秒大致为0.37分钟左右。没有缓存 82417毫秒大致为1.37分钟左右、两者相差1分钟左右、那么有朋友可能会发现你这也没快多少啊、但是兄弟们实际我们在访问时一分钟已经是相当久了、你能想象调用一次接口访问时间如果超过一分钟是什么感觉?那毫无疑问肯定得炸毛、而且我们访问数据实际第一次肯定是要到关系型数据中获取数据的、如果使用缓存直接第二次直接取内存缓存(不用去再去操作数据库io了)、但是不使用缓存每次去操作数据库、当用户量稍微多一点数据库它是有性能开销越来越大、所以缓存是非常有效的、也是我们最能直观立竿见影的效果。
总结一下哈:
到这里,缓存的使用基本结束了。最好值得一提的是,缓存尽量在数据量小、重复查询量大的情况下使用。因为缓存也是要耗内存的,毕竟我们服务器内存是有限的!、当然了会有小伙伴会说我们都已经用redis等等、确实现在缓存当然用的比较多是redis了、redis好处这里就不先谈了、总之本次文章是让没有了解普通缓存是如何使用得的小伙伴熟悉并了解、其实在这种方式在有些场景也是有它的好处的。
以上就是详解c#中普通缓存的使用的详细内容,更多关于c# 普通缓存的使用的资料请关注其它相关文章!
上一篇: PHP入门学习之字符串操作