程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [爬蟲學習筆記]MemoryCache緩存的用法學習,memorycache

[爬蟲學習筆記]MemoryCache緩存的用法學習,memorycache

編輯:C#入門知識

[爬蟲學習筆記]MemoryCache緩存的用法學習,memorycache


   

      在完成了DNS解析模塊之後,我意識到了DNS緩存機制也很有必要。在Redis,Memcache,和.Net自帶的Cache之間,考慮到部署問題,最終選擇了後者,之前在學習Web及開發的過程中用過System.Web.Caching.Cache這個類庫,但是這次的爬蟲程序我打算部署為桌面軟件,所以選用了System.Runtime.Caching.MemoryCache(後期如有必要也會加入System.Web.Caching.Cache來適配Web端程序)。

      MemoryCache的使用網上介紹的不多,不過這個是.NET4.0新引入的緩存對象,估計主要是替換原來企業庫的緩存模塊,使得.NET的緩存可以無處不在,而不用基於特定的Windows版本上使用。

      出於方便考慮,我們將不再實例化新的MemoryCache對象,只對MemoryCache的默認示例Memory.Default進行增刪查操作。

   

基礎篇

增加:

var item = new CacheItem("習大大", "兩學一做"); var policy = new CacheItemPolicy(); policy.SlidingExpiration = new TimeSpan(500); //插入一條key為"習大大",value為"兩學一做",500毫秒後自動銷毀的緩存 MemoryCache.Default.Add(item, policy); //重新設置policy的過期時間為當前時間+十分鐘 policy.AbsoluteExpiration = DateTimeOffset.Now + TimeSpan.FromMinutes(10); //注意,如果要使用Sliding時間,則Absolute必須為DateTimeOffset.MaxValue,反之,則Sliding必須為TimeSpan.Zero policy.SlidingExpiration = TimeSpan.Zero; //重新插入,覆蓋前一條數據 MemoryCache.Default.Add(item, policy);

注意,如果要使用Sliding時間,則Absolute必須為DateTimeOffset.MaxValue,反之,則Sliding必須為TimeSpan.Zero 
  

查詢:

  

緩存對象類似於字典集,查詢可以直接采用memoryCache[key]來進行,例如我們查詢一下前面插入的那條數據:

var idea = MemoryCache.Default["習大大"];
  

移除:

參數

key:要移除的緩存項的唯一標識符。
regionName:緩存中的一個添加了緩存項的命名區域。不要為該參數傳遞值。默認情況下,此參數為null,因為 MemoryCache 類未實現區域。
返回值
Type: System.Object  如果在緩存中找到該項,則為已移除的緩存項;否則為 null。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved