.NET4缓存过期策略摘录
以下是网上搜索的资料,仅供参考:
资料一:
ASP.NET缓存中Cache过期的三种策略(转自51CTO)
我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存。
- <asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="插入永不过期缓存"
- OnClick="btn_InsertNoExpirationCache_Click" />
- <asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="插入绝对时间
- 过期缓存" OnClick="btn_InsertAbsoluteExpirationCache_Click" />
- <asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="插入变化时间
- 过期缓存" OnClick="btn_InsertSlidingExpirationCache_Click" />
三个按钮的Click事件处理方法如下:
- protected void btn_InsertNoExpirationCache_Click(object sender, EventArgs e)
- {
- DataSet ds = GetData();
- Cache.Insert("Data", ds);
- }
- protected void btn_InsertAbsoluteExpirationCache_Click(object sender, EventArgs e)
- {
- DataSet ds = GetData();
- Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
- }
- protected void btn_InsertSlidingExpirationCache_Click(object sender, EventArgs e)
- {
- DataSet ds = GetData();
- Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
- }
我们来分析一下这三种ASP.NET缓存过期策略。
◆永不过期。直接赋值缓存的Key和Value即可
◆绝对时间过期。DateTime.Now.AddSeconds(10)表示缓存在10秒后过期,TimeSpan.Zero表示不使用平滑过期策略。
◆变化时间过期(平滑过期)。DateTime.MaxValue表示不使用绝对时间过期策略,TimeSpan.FromSeconds(10)表示缓存连续10秒没有访问就过期。
在这里,我们都使用了Insert()方法来添加缓存。其实,Cache还有一个Add()方法也能向缓存中添加项。不同之处在于Add()方法只能添加缓存中没有的项,如果添加缓存中已有的项将失败(但不会抛出异常),而Insert()方法能覆盖原来的项。
注意:和Application不同,这里不需要使用在插入ASP.NET缓存的时候进行锁操作,Cache会自己处理并发。
来源网址:http://developer.51cto.com/art/200907/140170.htm
资料二:(个人认为这个说的比较全面)
相似写法:
context.Cache.Insert(cacheKey, temp, dp, DateTime.MaxValue, TimeSpan.Zero);
--------------------------------------- 2013-7-10 begin ---------------------------------------
[MethodImpl(MethodImplOptions.Synchronized)] //对此方法实现线程同步
public void TestCache()
{
//add
System.Web.Caching.CacheDependency dp = new System.Web.Caching.CacheDependency(null, null);
HttpContext.Current.Cache.Add("key", "value", dp, DateTime.Now.AddHours(2), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null);
HttpContext.Current.Cache.Insert("key", "value");
HttpContext.Current.Cache.Insert("key", "value", dp);
//get
Object cache = HttpContext.Current.Cache["key"];
//remove
HttpContext.Current.Cache.Remove("key");
}
--------------------------------------- 2013-7-10 end ---------------------------------------
.NET4缓存过期策略摘录的更多相关文章
- 详解三种缓存过期策略LFU,FIFO,LRU(附带实现代码)
在学操作系统的时候,就会接触到缓存调度算法,缓存页面调度算法:先分配一定的页面空间,使用页面的时候首先去查询空间是否有该页面的缓存,如果有的话直接拿出来,如果没有的话先查询,如果页面空间没有满的时候, ...
- asp.net的Context.Cache缓存过期策略
最近使用Context.Cache需要了解Cache的缓存过期策略. 文章:ASP.NET缓存中Cache过期的三种策略
- Redis 键的过期删除策略及缓存淘汰策略
前言 Redis缓存淘汰策略与Redis键的过期删除策略并不完全相同,前者是在Redis内存使用超过一定值的时候(一般这个值可以配置)使用的淘汰策略:而后者是通过定期删除+惰性删除两者结合的方式进行内 ...
- 老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透
前文回顾 建议前一篇文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 过期策略 Redis 的过期策略都有哪些? 在聊这个问题之前,一定 ...
- 拥抱.NET Core系列:MemoryCache 缓存过期
在上一篇"拥抱.NET Core系列:MemoryCache 初识"中我们基本了解了缓存的添加.删除.获取,那么今天我们来看看缓存的过期机制.这里和上篇一样将把"Micr ...
- redis 的过期策略都有哪些?内存淘汰机制都有哪些?
面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 r ...
- redis的过期策略都有哪些?
1.面试题 redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现? 2.面试官心里分析 1)老师啊,我往redis里写的数据怎么没了? 之前有同学问过我,说我们生产环境的redi ...
- Redis过期策略
一.设置过期时间 expire key time(以秒为单位) -- 这是最常用的方式 setex(String key, int seconds, String value) -- 字符串独有的方式 ...
- Redis数据过期策略详解
http://www.cnblogs.com/xuliangxing/p/7151812.html 本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用 ...
随机推荐
- html checkbox多选框语法与结构
<input name="Fruit" type="checkbox" value="" /> 用法用例 <foreach ...
- Rancher + K8S RestApi使用
1前言 1.1使用的软件及版本 软件 版本号 Rancher 1.6stable Kubernetes 1.8.3 Docker 1.12.6 1.2 Rancher与K8S的RESTAPI差异 ...
- hdu 2126 Buy the souvenirs 二维01背包方案总数
Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- NumPy数组创建例程
NumPy - 数组创建例程 新的ndarray对象可以通过任何下列数组创建例程或使用低级ndarray构造函数构造. numpy.empty 它创建指定形状和dtype的未初始化数组. 它使用以下构 ...
- NumPy数学算数函数
NumPy - 算数函数 很容易理解的是,NumPy 包含大量的各种数学运算功能. NumPy 提供标准的三角函数,算术运算的函数,复数处理函数等. 三角函数 NumPy 拥有标准的三角函数,它为弧度 ...
- Origin软件作图留白过多问题解决
解决空白过大方法:1.Tools——>Options2.Page——>Copy page setting——>Margin默认是Page,下拉菜单选Border,Clip Borde ...
- 在Windows Server 2012上安装SharePoint 2010 SP1
现在很多企业的系统都开始用上了Windows 2012,最近公司需要建立一个门户系统,一开始就想到了微软的SharePoint2010,这玩意确实非常强悍,2008已经褪去,当然直接在Windows ...
- Linux find grep用法示例
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 ...
- 多线程实现方式---实现Runnable接口
多线程实现方式---实现Runnable接口 一个类如果需要具备多线程的能力,也可以通过实现java.lang.Runnable接口进行实现.按照Java语言的语法,一个类可以实现任意多个接口,所以该 ...
- 关于SQL Sever连接问题
错误: 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: ...