【.Net】关于内存缓存的一点记录
引言
最近看了内存缓存的一些介绍和用法,在此做个简单记录.
MemoryCache 类
MemoryCache 类是.Net 4.0推出的类库,主要是为了方便在Winform和Wpf中构建缓存框架的.下面是其中的一点用法
ObjectCache cache = MemoryCache.Default; //得到MemoryCache全局实例
string myData = cache["mydata"] as string; //访问缓存数据 if (myData == null)
{
CacheItemPolicy policy = new CacheItemPolicy(); //创建缓存项策略 //过期时间设置,以下两种只能设置一种
policy.AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes()); //设定某个时间过后将逐出缓存
policy.SlidingExpiration = new TimeSpan(, , ); //设定某个时间段内未被访问将逐出缓存 //逐出通知,以下两种只能设置一种
policy.UpdateCallback = arguments => { Console.WriteLine("即将逐出缓存" + arguments.Key); }; //逐出前执行的方法
//policy.RemovedCallback = arguments => { Console.WriteLine("已经逐出缓存" + arguments.CacheItem.Key); }; //逐出后执行的方法 //缓存监视类有4种
//CacheEntryChangeMonitor;
//FileChangeMonitor;
//HostFileChangeMonitor;
//SqlChangeMonitor;
//用法
//List<string> filePaths = new List<string>();
//filePaths.Add("c:\\cache\\example.txt");
//policy.ChangeMonitors.Add(new HostFileChangeMonitor(filePaths));
myData = "缓存数据"+DateTime.Now.ToShortTimeString(); cache.Set("mydata", myData, policy); //设置缓存数据,如果已存在则覆盖
}
Console.WriteLine("得到" + myData);
参考资料:
ASP.NET 4 快取 API 有两种:Cache 与 ObjectCache(MemoryCache)
How to: Cache Objects Simply using System.Runtime.Caching.
ASP.NET Cache类
关于在ASP.NET下的Cache,Fish Li大大已经写得很详细,直接放上传送门--细说 ASP.NET Cache 及其高级用法.
小结
其实用内存缓存类,就是用到它里面的各种策略.如果单纯用来放数据,直接用个字典都行了.
【.Net】关于内存缓存的一点记录的更多相关文章
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
Go/Python/Erlang编程语言对比分析及示例 本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...
- 对Integer类中的私有IntegerCache缓存类的一点记录
对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127. // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可 ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- Bitmap之内存缓存和磁盘缓存详解
原文首发于微信公众号:躬行之(jzman-blog) Android 中缓存的使用比较普遍,使用相应的缓存策略可以减少流量的消耗,也可以在一定程度上提高应用的性能,如加载网络图片的情况,不应该每次都从 ...
- C#开源磁盘/内存缓存引擎
前言 昨天写了个 <基于STSdb和fastJson的磁盘/内存缓存>,大家可以先看看.下午用到业务系统时候,觉得可以改进一下,昨晚想了一个晚上,刚才重新实现一下. 更新 1. 增加了对批 ...
- thrift之TTransport层的内存缓存传输类TMemoryBuffer
内存缓存是简单的在内存进行读写操作的一种传输,任何时候想在上面写入数据都是放入缓存中,任何时候读操作数据也是来至于缓存.内存缓存的分配使用c语言的malloc类函数,分配的长度是需要长度的两倍,需要考 ...
- 【转】图片缓存之内存缓存技术LruCache、软引用 比较
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧.这篇博文要讲的图片缓存机制,我接触到的有两钟,一 ...
- 基于.net的通用内存缓存模型组件
谈到缓存,我们自然而然就会想到缓存的好处,比如: 降低高并发数据读取的系统压力:静态数据访问.动态数据访问 存储预处理数据,提升系统响应速度和TPS 降低高并发数据写入的系统压力 提升系统可用性,后台 ...
- 【安卓中的缓存策略系列】安卓缓存之内存缓存LruCache
缓存策略在移动端设备上是非常重要的,尤其是在图片加载这个场景下,因为图片相对而言比较大会花费用户较多的流量,因此可用缓存方式来解决,即当程序第一次从网络上获取图片的时候,就将其缓存到存储设备上,这样在 ...
随机推荐
- vb.net 正則表達式 取 固定格式的字符
vb.net 正則表達式 取 固定格式的字符: 原始字符串:strSqlTmp="select * from A_TEST where a_data = '@1@' and b_link = ...
- 阿里云短信验证解决方案(java版)(redis存储)
最近搞了一个互联网项目的注册,需要写一个手机号验证(由于之前没有轮子,只能自己摸索了); 1:基本思路: 1>购买了阿里云短信服务->下载阿里云短信发送demo(java版); 2> ...
- LVC函数重要参数 EDT_CLL_CB:退出可编辑单元格时回调
6. I_GRID_SETTINGS 参数属性该参数用于设置Grid相关参数(打印.单元格回调):类型为:LVC_S_GLAY,该结构包括:01) COLL_TOP_P:最小化 TOP_OF_PAGE ...
- Python2 socket TCPServer 多线程并发 超时关闭
在阿里云上测试过,可以直接使用. 用IP和端口发送数据,会返回echo:+接收到的数据 #coding=utf-8 import socket import threading,getopt,sys, ...
- Python之------初识面向对象(Day22)
一.面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序 ...
- python如何实现多线程
一个线程就是一个轻量级进程,多线程能让我们一次执行多个线程. python是多线程语言,其内置有多线程工具包 python中GIL(全局解释器锁)确保一次执行单个线程.一个线程保存GIL并在将其传递给 ...
- Rabbitmq消费失败死信队列
Rabbitmq 重消费处理 一 处理流程图: 业务交换机:正常接收发送者,发送过来的消息,交换机类型topic AE交换机: 当业务交换机无法根据指定的routingkey去路由到队列的时候,会全部 ...
- VC6.0 开发 64 位程序
1. 设置平台SDK(如:Microsoft platform sdk 2003),选择64位的编译.链接环境. setenv /XP64 /DEBUG 2. 利用这个环境启动VC6.0. msdev ...
- springboot-数据库
Spring-data-jpa jpa定义了一系列持久化的标准,比如hibernate就实现了这一标准. Springboot 的jpa就是hibernate的整合. 在pom文件中增加配置: < ...
- @MarkFan 口语练习录音 20140406 [美女与野兽的口语练习录音]
大家好,您现在收听的是美女与野兽的口语练习录音 敢于追求,不惧任何挑战,才是勇敢的人生.试想一下,世界上每天有多少人为了梦想,为了生活,甚至是为了别人在不停地奔跑.假若你此刻心中装有梦想,却碍于现实不 ...