缓存(销毁)依赖

摘要:
xmlversion=“1.0”encoding=“utf-8”?
1:缓存依赖的类别
      文件,数据表,数据行,一段时间,控件,查询字符串等
2:缓存项之间的依赖
缓存(销毁)依赖第1张protected void Button3_Click(object sender, EventArgs e)
缓存(销毁)依赖第2张缓存(销毁)依赖第3张
缓存(销毁)依赖第4张{
缓存(销毁)依赖第5张    
// create item A and item B
缓存(销毁)依赖第5张
    string itemA = "ItemA";
缓存(销毁)依赖第5张    
string itemB = "ItemB";
缓存(销毁)依赖第5张    Cache.Insert(
"ItemA", itemA, null, DateTime.Now.AddMinutes(10), 
缓存(销毁)依赖第5张    TimeSpan.Zero,
缓存(销毁)依赖第5张    CacheItemPriority.Default, MyItemRemovedCallBack);
缓存(销毁)依赖第5张    Cache.Insert(
"ItemB", itemB, null, DateTime.Now.AddMinutes(10), 
缓存(销毁)依赖第5张    TimeSpan.Zero,
缓存(销毁)依赖第5张    CacheItemPriority.Default, MyItemRemovedCallBack);
缓存(销毁)依赖第14张}

缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
private void MyItemRemovedCallBack(string key, object value,
缓存(销毁)依赖第1张                   CacheItemRemovedReason reason)
缓存(销毁)依赖第2张缓存(销毁)依赖第3张
缓存(销毁)依赖第4张{
缓存(销毁)依赖第5张    
// remove the item from the cache
缓存(销毁)依赖第5张
    if (key == "ItemA" ) Cache.Remove("ItemB");
缓存(销毁)依赖第5张    
else if (key.Equals == "ItemB") Cache.Remove("ItemB");
缓存(销毁)依赖第14张}

缓存(销毁)依赖第1张
以上代码中
Key:缓存集合中唯一确认一项的键
Value:保存在缓存中的值
Reason:是"CacheItemRemovedReason"的一个枚举.说明缓存项被移出的原因
我们也可以手动移出缓存
缓存(销毁)依赖第1张Cache.Remove("ItemA");
3: 缓存依赖于文件
缓存(销毁)依赖第1张<?xml version="1.0" encoding="utf-8"?>
缓存(销毁)依赖第1张
<MenuItems>
缓存(销毁)依赖第1张    
<MenuItem>
缓存(销毁)依赖第1张        
<Text>Home</Text>
缓存(销毁)依赖第1张    
</MenuItem>
缓存(销毁)依赖第1张    
<MenuItem>
缓存(销毁)依赖第1张        
<Text>About us</Text>
缓存(销毁)依赖第1张    
</MenuItem>
缓存(销毁)依赖第1张    
<MenuItem>
缓存(销毁)依赖第1张        
<Text>Contact us</Text>
缓存(销毁)依赖第1张    
</MenuItem>
缓存(销毁)依赖第1张    
<MenuItem>
缓存(销毁)依赖第1张        
<Text>Help</Text>
缓存(销毁)依赖第1张    
</MenuItem>
缓存(销毁)依赖第1张    
<MenuItem>
缓存(销毁)依赖第1张        
<Text>Feature</Text>
缓存(销毁)依赖第1张    
</MenuItem>
缓存(销毁)依赖第1张
</MenuItems>
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张    
string menuPath = "MyFiles/Menu.xml";
缓存(销毁)依赖第1张    
string folderName = "MyFiles/";
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张    DataSet ds 
= null;
缓存(销毁)依赖第1张    
if (Cache["Menu"== null)
缓存(销毁)依赖第2张缓存(销毁)依赖第3张    
缓存(销毁)依赖第4张{
缓存(销毁)依赖第5张        ds 
= new DataSet();
缓存(销毁)依赖第5张        ds.ReadXml(Server.MapPath(menuPath));
缓存(销毁)依赖第5张
缓存(销毁)依赖第5张        
// menu is created
缓存(销毁)依赖第5张
        Cache.Insert("Menu", ds, new System.Web.Caching.CacheDependency(
缓存(销毁)依赖第5张            Server.MapPath(menuPath)),DateTime.Now.AddMinutes(
60),
缓存(销毁)依赖第5张            TimeSpan.Zero,
缓存(销毁)依赖第5张            System.Web.Caching.CacheItemPriority.Default,
缓存(销毁)依赖第5张            
new System.Web.Caching.CacheItemRemovedCallback(
缓存(销毁)依赖第5张                                  CacheItemRemovedCallBack));
缓存(销毁)依赖第5张
缓存(销毁)依赖第5张       DisplayCacheCreationTime(
"Object was not in the cache and created at:",
缓存(销毁)依赖第5张             DateTime.Now.ToLongTimeString());
缓存(销毁)依赖第14张    }

缓存(销毁)依赖第1张    
else
缓存(销毁)依赖第2张缓存(销毁)依赖第3张    
缓存(销毁)依赖第4张{
缓存(销毁)依赖第5张        
// menu is created from the cache
缓存(销毁)依赖第5张
        DisplayCacheCreationTime("Object was in the cache",String.Empty);
缓存(销毁)依赖第14张    }

缓存(销毁)依赖第1张
我们也可以将缓存依赖于文件夹.当文件夹下的文件和子级文件夹被创建,更新,删除的时候跟新缓存.
4:数据库中的缓存依赖
缓存(销毁)依赖第1张<connectionStrings>
缓存(销毁)依赖第1张    
<add name="ConnectionString"
缓存(销毁)依赖第1张         connectionString
="Server=localhost;Database=School;
缓存(销毁)依赖第1张
Trusted_Connection=true"/>
缓存(销毁)依赖第1张
</connectionStrings>
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
<system.web>
缓存(销毁)依赖第1张    
<caching>
缓存(销毁)依赖第1张        
<sqlCacheDependency pollTime="10000" enabled="true" >
缓存(销毁)依赖第1张            
<databases>
缓存(销毁)依赖第1张                
<add connectionStringName="ConnectionString" name="School"/>
缓存(销毁)依赖第1张            
</databases>
缓存(销毁)依赖第1张        
</sqlCacheDependency>
缓存(销毁)依赖第1张    
</caching></caching>
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张    
if (Cache["Users"== null)
缓存(销毁)依赖第2张缓存(销毁)依赖第3张    
缓存(销毁)依赖第4张{
缓存(销毁)依赖第5张        
// Create the cache dependency
缓存(销毁)依赖第5张
        SqlCacheDependency dep = new SqlCacheDependency("School""Users");
缓存(销毁)依赖第5张        
string connectionString = ConfigurationManager.ConnectionStrings[
缓存(销毁)依赖第5张                                        
"ConnectionString"].ConnectionString;
缓存(销毁)依赖第5张        SqlConnection myConnection 
= new SqlConnection(connectionString);
缓存(销毁)依赖第5张        SqlDataAdapter ad 
= new SqlDataAdapter("SELECT FirstName, LastName " +
缓存(销毁)依赖第5张                                               
"FROM Users", myConnection);
缓存(销毁)依赖第5张        DataSet ds 
= new DataSet();
缓存(销毁)依赖第5张        ad.Fill(ds);
缓存(销毁)依赖第5张
缓存(销毁)依赖第5张        
// put in the cache object
缓存(销毁)依赖第5张
        Cache.Insert("Users", ds, dep);
缓存(销毁)依赖第14张    }

缓存(销毁)依赖第1张
缓存(销毁)依赖第1张    gvUsers.DataSource 
= Cache["Users"as DataSet;
缓存(销毁)依赖第1张    gvUsers.DataBind();
缓存(销毁)依赖第1张
缓存(销毁)依赖第1张
SqlCacheDependency dep = new SqlCacheDependency("School", "Users"); 这句话用于创建一个与数据库School中表Users关联的缓存.当我们对Users进行INSERT, DELETE, UPDATE操作的时候缓存会被移出(Cache["Users"]==null ).
这部分代码适用于sql2000,在sql2005下没有这么麻烦.回头我们再讨论sql2005下的缓存.

免责声明:文章转载自《缓存(销毁)依赖》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Django中的Model模型Kafka记录-常用命令选项说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何让前端浏览器不进行缓存

当浏览器要访问一个某个资源时,浏览器会通过资源的URL来判断是否读取缓存中的内容。由于浏览器存在缓存,所以会导致服务器上的内容修改了,但是在浏览器却显示没有变化。为了解决这个问题,可以在每次请求的时候加一个随机数参数或者时间戳。它的作用就是让浏览器误以为请求的是一个新链接,这样浏览器就不会去读取缓存里的内容。代码如下:    <!DOCTYPE ht...

记Git保存本地密码与删除本地缓存

参考: https://www.jianshu.com/p/77b0340a02f3 https://blog.csdn.net/yunlong782/article/details/50887833?locationNum=7&fps=1 保存密码 git有三种策略查找用户名密码:去缓存中找,去磁盘中找,去钥匙串中找。 ~/User/用户...

基于Redis的Spring cache 缓存介绍

Cache API及默认提供的实现 Spring提供的核心Cache接口:  package org.springframework.cache; public interface Cache { String getName(); //缓存的名字 Object getNativeCache(); //得到底层使用的缓...

CPU缓存L1/L2/L3工作原理

点击上方“开源Linux”,选择“设为星标” 回复“学习”获取独家整理的学习资料! 一、前言 在过去的几年中,计算机处理器取得了相当大的进步,晶体管的尺寸每年都在变小,而且这种进步达到了摩尔定律迅速变得多余的地步。 当涉及到处理器时,不仅晶体管和频率很重要,高速缓存也很重要。 在讨论CPU(Central Processing Units)时,您可能听...

Squid 优化

*NIX将TCP/IP也作为文件来访问而squid 2.6默认的访问文件数是1024作为运营环境使用.就需要修改最大打开文件数配置时加上–with-maxfd 参数即可存储方式使用aufs会加快访问速度.因为使用非同步方式打开snmp,这样可以从cacti之类的snmp软件中获取相关squid的参数进行监控打开大文件支持.允许日志文件超过2G./confi...

【js】了解前端缓存,收获不止于此!

了解前端缓存,收获不止于此! 这次我们来讲一下关于前端缓存的问题。感谢赵欢同学提供doc素材。 首先,开局我画了一张图,你会对文章有一个大局了解。 今天讲的是前端缓存。 前端缓存有3大种:如图,分为HTTP缓存、浏览器缓存、应用程序缓存。 HTTP缓存我们先来看HTTP缓存:(做下了解) 分为强缓存与协商缓存。 首先看强缓存: 强缓存之Expires...