Cache类缓存
属性 | 说明 |
Count | 获取存储在缓存中的项数。 |
EffectivePercentagePhysicalMemoryLimit | 获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物理内存百分比。 |
EffectivePrivateBytesLimit | 获取可用于缓存的字节数。 |
Item | 获取或设置指定键处的缓存项。 |
方法名称 | 说明 |
Add | 将指定项添加到 Cache 对象,该对象具有依赖项、到期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序)。 |
Get | 从 Cache 对象检索指定项。 |
GetEnumerator | 检索用于循环访问包含在缓存中的键设置及其值的字典枚举数。 |
Insert(String, Object) | 向 Cache 对象插入项,该项带有一个缓存键引用其位置,并使用 CacheItemPriority 枚举提供的默认值。 |
Insert(String, Object, CacheDependency) | 向 Cache 中插入具有文件依赖项或键依赖项的对象。 |
Insert(String, Object, CacheDependency, DateTime, TimeSpan) | 向 Cache 中插入具有依赖项和到期策略的对象。 |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) | 将对象与依赖项、到期策略以及可用于在从缓存中移除项之前通知应用程序的委托一起插入到 Cache 对象中。 |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) | 向 Cache 对象中插入对象,后者具有依赖项、到期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序)。 |
Remove | 从应用程序的 Cache 对象移除指定项。 |
名称 | 说明 |
NoAbsoluteExpiration | 用于 Insert 方法调用中的 absoluteExpiration 参数中以指示项从不到期。 此字段为只读。 |
NoSlidingExpiration | 用作 Insert 或 Add 方法调用中的 slidingExpiration 参数,以禁用可调到期。 此字段为只读。 |
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Person p = new Person();
p.Id = 1;
p.Name = "诸葛亮";
cache.Insert("AA",p);
cache.Insert("BB","字符串");
Response.Write(cache.Get("BB").ToString()); //输出 字符串
Person p2 = cache["AA"] as Person;
Response.Write(p2.Id + " : " + p2.Name); //输出 1 : 诸葛亮
Response.Write(cache.EffectivePrivateBytesLimit); //-1 这是一个只读属性,那就没什么好说了,只能输出来看看了,但是-1是什么意思呢?无限吗
Response.Write(cache.EffectivePercentagePhysicalMemoryLimit); //98 开始移除项之前可以使用到98%
Response.Write(cache.Count); //输出 3
Response.Write(cache["BB"]); //输出 字符串 支持索引器式的读取
Response.Write("~~~" + cache["BB"] + "~~~"); //移除了输出 null,但程序不报错
{
Response.Write(obj.GetType() + "<br/>"); //输出不知道什么鸟东西
}
}
}
{
public int Id
{
get;
set;
}
{
get;
set;
}
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
Cache cache = HttpContext.Current.Cache;
//文件缓存依赖
cache.Insert("CC", "依赖项测试", new CacheDependency(@"D:\123.txt"));
//这时候在about.aspx页面添加一行代码,当更改一下D:123.txt时,cache["cc"]会立即被清空
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
//直接打开本页面,输出缓存依赖项测试
//当更改D:\123.txt之后,在刷新,输出空,表明该Cache是依赖于D:\123.txt的
Response.Write(HttpContext.Current.Cache["CC"]);
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
Cache cache = HttpContext.Current.Cache;
//5秒后就到期,立即移除,没商量
cache.Insert("DD", "绝对过期测试", null, DateTime.Now.AddSeconds(5), System.Web.Caching.Cache.NoSlidingExpiration);
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
//先打开index.aspx添加到缓存 然后立即打开本页面,输出 绝对过期测试
//持续刷新5秒后,不会再输出 绝对过期测试
Response.Write(HttpContext.Current.Cache["DD"]);
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
Cache cache = HttpContext.Current.Cache;
//弹性过期时间,当缓存没使用10秒就过期
cache.Insert("DD", "滑动过期测试", null, System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromSeconds(10));
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
//直接打开本页面,输出弹性过期测试
//如果一直不停地刷新,都会继续输出,但是当超过10秒后再刷新,不会再输出 滑动缓存测试
Response.Write(HttpContext.Current.Cache["DD"]);
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。