Asp.Net2.0的新技術緩存通知

當同樣一段數據,很多人要訪問時,以前我總是不斷的從數據庫裏面讀出來到DataSet中,然後慢慢的處理,但是每一個用戶的訪問數據,都要進行同樣的步驟,感覺機子承受不了啊……
    找了幾種方法,顯示用Cookies技術,發現不安全啊,於是使用Session變量來盛放數據,服務器變量,安全沒有話說的,接下來發現這個Session是一個用戶創建單獨的一個,很能消耗服務器的資源。最後想到了緩存技術,這個使用起來也簡單;可以Cache.Add,也可以Cache.Insert,還可以直接Cache["key"]=value賦值;太方便了……
    現在又發現了緩存Cache的不足之處了,那就是別人改了數據庫裏面的技術,但是你的Cache中的數據還是老數據,不同步啊……思考中……
    今天看了一下緩存通知方面的技術,感覺太爽了,可以在原數據發生改變時自動通知Cache,移走Cache中的老數據,這就是SQL緩存通知技術呀!大概意思就是:當你把SQL Server中的數據取出來保存在Cache中,不用怕數據過期,只要數據庫裏面的數據發生變化,Cache中的數據就會移除掉……
    使用這種緩存通知技術的主要步驟也簡單:
1>在Web.Config配置文件中添加數據庫的連接字符串:在ConnectionString這個地方添加
<add name="myconstring" connectionString="server=.;database=DB_Test;uid=sa;pwd=123456;"/>
2>接下來就是在System.Web這個地方添加:
<caching>
      <sqlCacheDependency enabled="true" pollTime="600">
        <databases>
          <add name="mydb" connectionStringName="myconstring" /add>
        </databases>
      </sqlCacheDependency>
</caching>
這就是一些關於數據緩存的一些參數設置……
3>設置允許數據緩存通知,允許數據庫中的表緩存通知,這裏有兩種方法
第一種:簡單一點通過Aspnet_regsql這個命令來執行,至於具體的,網上多的是……
第二種:就是通過編程實現開發數據庫,數據庫中表的緩存通知
主要的方法都在SqlCacheDependencyAdmin這個類裏面:
該類包含了五個重要的方法:
DisableNotifications
爲特定數據庫禁用 SqlCacheDependency對象更改通知
DisableTableForNotifications
爲數據庫中的特定表禁用SqlCacheDependency對象更改通知
EnableNotifications
爲特定數據庫啓用SqlCacheDependency對象更改通知
EnableTableForNotifications
爲數據庫中的特定表啓用SqlCacheDependency對象更改通知
GetTablesEnabledForNotifications
返回啓用了SqlCacheDependency對象更改通知的所有表的列表

4>無論你在前面通過那種方法,只要設置好了就可以了
先建立一個緩存依賴項SqlCacheDependency dep=new SqlCacheDependency("mydb","users")
這裏這個mydb就是前面在Web.config中SqlCacheDependency定義了的一個數據庫字符串,users該數據庫的一個表
意思就是隻要這個users表發生了變化
那麼通過Cache.Insert("key",ds,dep)建立的數據緩存中的ds與key這個一項對應就會刪除掉,
這樣就實現了緩存通知……  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章