日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

缓存(销毁)依赖

發布時間:2023/12/31 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缓存(销毁)依赖 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1:緩存依賴的類別
??????文件,數據表,數據行,一段時間,控件,查詢字符串等
2:緩存項之間的依賴
protected?void?Button3_Click(object?sender,?EventArgs?e)
{
????
//?create?item?A?and?item?B
????string?itemA?=?"ItemA";
????
string?itemB?=?"ItemB";
????Cache.Insert(
"ItemA",?itemA,?null,?DateTime.Now.AddMinutes(10),?
????TimeSpan.Zero,
????CacheItemPriority.Default,?MyItemRemovedCallBack);
????Cache.Insert(
"ItemB",?itemB,?null,?DateTime.Now.AddMinutes(10),?
????TimeSpan.Zero,
????CacheItemPriority.Default,?MyItemRemovedCallBack);
}



private?void?MyItemRemovedCallBack(string?key,?object?value,
???????????????????CacheItemRemovedReason?reason)
{
????
//?remove?the?item?from?the?cache
????if?(key?==?"ItemA"?)?Cache.Remove("ItemB");
????
else?if?(key.Equals?==?"ItemB")?Cache.Remove("ItemB");
}

以上代碼中
Key:緩存集合中唯一確認一項的鍵
Value:保存在緩存中的值
Reason:是"CacheItemRemovedReason"的一個枚舉.說明緩存項被移出的原因
我們也可以手動移出緩存
Cache.Remove("ItemA");3:?緩存依賴于文件
<?xml?version="1.0"?encoding="utf-8"?>
<MenuItems>
????
<MenuItem>
????????
<Text>Home</Text>
????
</MenuItem>
????
<MenuItem>
????????
<Text>About?us</Text>
????
</MenuItem>
????
<MenuItem>
????????
<Text>Contact?us</Text>
????
</MenuItem>
????
<MenuItem>
????????
<Text>Help</Text>
????
</MenuItem>
????
<MenuItem>
????????
<Text>Feature</Text>
????
</MenuItem>
</MenuItems>



????
string?menuPath?=?"MyFiles/Menu.xml";
????
string?folderName?=?"MyFiles/";

????DataSet?ds?
=?null;
????
if?(Cache["Menu"]?==?null)
????
{
????????ds?
=?new?DataSet();
????????ds.ReadXml(Server.MapPath(menuPath));

????????
//?menu?is?created
????????Cache.Insert("Menu",?ds,?new?System.Web.Caching.CacheDependency(
????????????Server.MapPath(menuPath)),DateTime.Now.AddMinutes(
60),
????????????TimeSpan.Zero,
????????????System.Web.Caching.CacheItemPriority.Default,
????????????
new?System.Web.Caching.CacheItemRemovedCallback(
??????????????????????????????????CacheItemRemovedCallBack));

???????DisplayCacheCreationTime(
"Object?was?not?in?the?cache?and?created?at:",
?????????????DateTime.Now.ToLongTimeString());
????}

????
else
????
{
????????
//?menu?is?created?from?the?cache
????????DisplayCacheCreationTime("Object?was?in?the?cache",String.Empty);
????}

我們也可以將緩存依賴于文件夾.當文件夾下的文件和子級文件夾被創建,更新,刪除的時候跟新緩存.
4:數據庫中的緩存依賴
<connectionStrings>
????
<add?name="ConnectionString"
?????????connectionString
="Server=localhost;Database=School;
Trusted_Connection=true"/>
</connectionStrings>

<system.web>
????
<caching>
????????
<sqlCacheDependency?pollTime="10000"?enabled="true"?>
????????????
<databases>
????????????????
<add?connectionStringName="ConnectionString"?name="School"/>
????????????
</databases>
????????
</sqlCacheDependency>
????
</caching></caching>


????
if?(Cache["Users"]?==?null)
????
{
????????
//?Create?the?cache?dependency
????????SqlCacheDependency?dep?=?new?SqlCacheDependency("School",?"Users");
????????
string?connectionString?=?ConfigurationManager.ConnectionStrings[
????????????????????????????????????????
"ConnectionString"].ConnectionString;
????????SqlConnection?myConnection?
=?new?SqlConnection(connectionString);
????????SqlDataAdapter?ad?
=?new?SqlDataAdapter("SELECT?FirstName,?LastName?"?+
???????????????????????????????????????????????
"FROM?Users",?myConnection);
????????DataSet?ds?
=?new?DataSet();
????????ad.Fill(ds);

????????
//?put?in?the?cache?object
????????Cache.Insert("Users",?ds,?dep);
????}


????gvUsers.DataSource?
=?Cache["Users"]?as?DataSet;
????gvUsers.DataBind();

SqlCacheDependency dep = new SqlCacheDependency("School", "Users"); 這句話用于創建一個與數據庫School中表Users關聯的緩存.當我們對Users進行INSERT, DELETE, UPDATE操作的時候緩存會被移出(Cache["Users"]==null ).
這部分代碼適用于sql2000,在sql2005下沒有這么麻煩.回頭我們再討論sql2005下的緩存.

轉載于:https://www.cnblogs.com/tommyli/archive/2008/01/23/1049696.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的缓存(销毁)依赖的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。