zoukankan      html  css  js  c++  java
  • CacheManager操作缓存

    View Code
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Text;
      4 
      5 namespace Secom.Framework.Common
      6 {
      7     /// <summary>
      8     /// 缓存服务的基本接口,定义缓存服务的基本功能
      9     /// </summary>
     10     
     11     public interface ICacheManager:IHttpRunTimeCacheManager
     12     {
     13         /// <summary>
     14         /// 
     15         /// </summary>
     16         /// <param name="cacheManagerName"></param>
     17         /// <param name="key"></param>
     18         /// <param name="obj"></param>
     19         /// <param name="duration"></param>
     20         void Add(string cacheManagerName, string key, Object obj, int duration);
     21         /// <summary>
     22         /// 
     23         /// </summary>
     24         /// <param name="cacheManagerName"></param>
     25         /// <param name="key"></param>
     26         /// <param name="obj"></param>
     27         /// <param name="file"></param>
     28         void Add(string cacheManagerName, string key, Object obj, string file);
     29         /// <summary>
     30         /// 
     31         /// </summary>
     32         /// <param name="key"></param>
     33         /// <param name="obj"></param>
     34         void Add(string key, Object obj);
     35         /// <summary>
     36         /// 
     37         /// </summary>
     38         /// <param name="cacheManagerName"></param>
     39         /// <param name="key"></param>
     40         /// <param name="obj"></param>
     41         void Add(string cacheManagerName, string key, Object obj);
     42         /// <summary>
     43         /// 
     44         /// </summary>
     45         void Flush();
     46         /// <summary>
     47         /// 
     48         /// </summary>
     49         /// <param name="cacheManagerName"></param>
     50         void Flush(string cacheManagerName);
     51         /// <summary>
     52         /// 
     53         /// </summary>
     54         /// <param name="key"></param>
     55         /// <returns></returns>
     56         Object GetData(string key);
     57         /// <summary>
     58         /// 
     59         /// </summary>
     60         /// <param name="cacheManagerName"></param>
     61         /// <param name="key"></param>
     62         /// <returns></returns>
     63         Object GetData(string cacheManagerName, string key);
     64         /// <summary>
     65         /// 
     66         /// </summary>
     67         /// <typeparam name="T"></typeparam>
     68         /// <param name="key"></param>
     69         /// <returns></returns>
     70         T GetData<T>(string key);
     71         /// <summary>
     72         /// 
     73         /// </summary>
     74         /// <typeparam name="T"></typeparam>
     75         /// <param name="cacheManagerName"></param>
     76         /// <param name="key"></param>
     77         /// <returns></returns>
     78         T GetData<T>(string cacheManagerName, string key);
     79         /// <summary>
     80         /// 
     81         /// </summary>
     82         /// <param name="cacheManagerName"></param>
     83         /// <param name="key"></param>
     84         void Remove(string cacheManagerName, string key);
     85         /// <summary>
     86         /// 
     87         /// </summary>
     88         /// <param name="key"></param>
     89         void Remove(string key);
     90     }
     91 
     92     public interface IHttpRunTimeCacheManager
     93     {
     94         /// <summary>
     95         /// 往缓存写数据
     96         /// </summary> 
     97         /// <param name="key">缓存的键值</param>
     98         /// <param name="obj">要放入缓存的数据</param>
     99         /// <param name="sqlDependncy">与数据库依赖的对象</param>
    100         void AddRunTimeCache(string key, Object obj, System.Web.Caching.SqlCacheDependency sqlDependncy);
    101         /// <summary>
    102         /// 获取运行时的缓存
    103         /// </summary>
    104         /// <param name="key"></param>
    105         /// <returns></returns>
    106         object GetRunTimeCache(string key);
    107         /// <summary>
    108         /// 移除运行时缓存对象
    109         /// </summary>
    110         /// <param name="key"></param>
    111         void RemoveRuntimeCache(string key);
    112     }
    113
    View Code
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Text;
      4 using Microsoft.Practices.EnterpriseLibrary.Caching;
      5 using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
      6 using Secom.Framework.Common.Util;
      7 using System.Configuration;
      8 
      9 namespace Secom.Framework.Common
     10 {
     11     /// <summary>
     12     /// 缓存处理类
     13     /// </summary>
     14     public class CacheManager : ICacheManager
     15     {
     16         #region 常量定义
     17         /// <summary>默认缓存策略 60秒</summary>
     18         public const string DefalutCacheManager = "Default Cache Manager";
     19         /// <summary>基础数据缓存策略 120秒</summary>
     20         public const string BaseDataCacheManager = "Base Data Cache Manager";
     21         /// <summary>临时数据缓存策略 30秒</summary>
     22         public const string TempDataCacheManager = "Temp Data Cache Manager";
     23         /// <summary>业务数据缓存策略 80秒</summary>
     24         public const string BusinessDataCacheManager = "Business Data Cache Manager"
     25         #endregion
     26 
     27         #region 构造函数
     28         /// <summary>
     29         /// 实例化 <see cref="T:CacheManager"/> 类.
     30         /// </summary>
     31         protected CacheManager()
     32         {
     33         }
     34         #endregion
     35 
     36         #region ICacheManager 实例
     37         /// <summary></summary>
     38         public static ICacheManager Instance = new CacheManager();
     39 
     40         #endregion
     41 
     42         #region 实现ICacheManager
     43         /// <summary>
     44         /// 往缓存写数据
     45         /// </summary>
     46         /// <param name="key">缓存的键值</param>
     47         /// <param name="obj">要放入缓存的数据</param>
     48         public void Add(string key, Object obj)
     49         {
     50             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
     51                 cacheManager = CacheFactory.GetCacheManager();
     52 
     53             cacheManager.Add(key, obj);
     54         }
     55 
     56         /// <summary>
     57         /// 往缓存写数据
     58         /// </summary>
     59         /// <param name="cacheManagerName">cache manager 的名字</param>
     60         /// <param name="key">缓存的键值</param>
     61         /// <param name="obj">要放入缓存的数据</param>
     62         public void Add(string cacheManagerName, string key, Object obj)
     63         {
     64             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
     65                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
     66 
     67             cacheManager.Add(key, obj);
     68         }
     69 
     70         /// <summary>
     71         /// 往缓存写数据
     72         /// </summary>
     73         /// <param name="cacheManagerName">cache manager 的名字</param>
     74         /// <param name="key">缓存的键值</param>
     75         /// <param name="obj">要放入缓存的数据</param>
     76         /// <param name="duration">缓存有效时间</param>
     77         public void Add(string cacheManagerName, string key, Object obj, int duration)
     78         {
     79             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
     80                 cacheManager = CacheFactory.GetCacheManager();
     81 
     82             cacheManager.Add(
     83                  key, obj, CacheItemPriority.Normal, null,
     84                  new SlidingTime(TimeSpan.FromSeconds(600)));
     85             //cacheManager.Add(
     86             //     key, obj, CacheItemPriority.Normal, null,
     87             //     new SlidingTime(TimeSpan.FromSeconds(ParamUtil.getint(
     88             //         ConfigurationManager.AppSettings[BusinessDataCacheManager]))));
     89         }
     90 
     91 
     92         /// <summary>
     93         /// 往缓存写数据
     94         /// </summary>
     95         /// <param name="cacheManagerName">cache manager 的名字</param>
     96         /// <param name="key">缓存的键值</param>
     97         /// <param name="obj">要放入缓存的数据</param>
     98         /// <param name="file">依赖的文件,当文件被修改后缓存自动失效</param>
     99         public void Add(string cacheManagerName, string key, Object obj, string file)
    100         {
    101             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    102                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
    103 
    104             cacheManager.Add(key, obj, CacheItemPriority.Normal, nullnew FileDependency(file));
    105         }
    106 
    107         /// <summary>
    108         /// 从缓存移除数据
    109         /// </summary>
    110         /// <param name="key">缓存的键值</param>
    111         public void Remove(string key)
    112         {
    113             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    114                 cacheManager = CacheFactory.GetCacheManager( );
    115             cacheManager.Remove(key);
    116         }
    117 
    118         /// <summary>
    119         /// 从缓存移除数据
    120         /// </summary>
    121         /// <param name="cacheManagerName">cache manager 的名字</param>
    122         /// <param name="key">缓存的键值</param>
    123         public void Remove(string cacheManagerName, string key)
    124         {
    125             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    126                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
    127             cacheManager.Remove(key);
    128         }
    129 
    130 
    131         /// <summary>
    132         /// 清空缓存里面的所有数据
    133         /// </summary>
    134         public void Flush()
    135         {
    136             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    137                 cacheManager = CacheFactory.GetCacheManager();
    138             cacheManager.Flush();
    139         }
    140 
    141         /// <summary>
    142         /// 清空缓存里面的所有数据
    143         /// </summary>
    144         /// <param name="cacheManagerName">cache manager 的名字</param>
    145         public void Flush(string cacheManagerName)
    146         {
    147             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    148                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
    149             cacheManager.Flush();
    150         }
    151 
    152         /// <summary>
    153         /// 从缓存里面获取数据.
    154         /// </summary>
    155         /// <param name="key">缓存的键值</param>
    156         /// <returns></returns>
    157         public Object GetData(string key)
    158         {
    159             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    160                 cacheManager = CacheFactory.GetCacheManager();
    161             return cacheManager.GetData(key);
    162         }
    163 
    164         /// <summary>
    165         /// 从缓存里面获取数据.
    166         /// </summary>
    167         /// <param name="key">缓存的键值</param>
    168         /// <returns></returns>
    169         public T GetData<T>(string key)
    170         {
    171             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    172                 cacheManager = CacheFactory.GetCacheManager();
    173             T obj = (T)cacheManager.GetData(key);
    174             return obj;
    175         }
    176 
    177         /// <summary>
    178         /// 从缓存里面获取数据.
    179         /// </summary>
    180         /// <param name="cacheManagerName">cache manager 的名字</param>
    181         /// <param name="key">缓存的键值</param>
    182         /// <returns></returns>
    183         public Object GetData(string cacheManagerName, string key)
    184         {
    185             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    186                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
    187             return cacheManager.GetData(key);
    188         }
    189 
    190         /// <summary>
    191         /// 从缓存里面获取数据.
    192         /// </summary>
    193         /// <param name="cacheManagerName">cache manager 的名字</param>
    194         /// <param name="key">缓存的键值</param>
    195         /// <returns></returns>
    196         public T GetData<T>(string cacheManagerName, string key)
    197         {
    198             Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager
    199                 cacheManager = CacheFactory.GetCacheManager(cacheManagerName);
    200             T obj = (T) cacheManager.GetData(key);
    201             return obj;
    202         }
    203 
    204         #endregion
    205 
    206         #region -- HttpRuntime Cache --
    207 
    208         /// <summary>
    209         /// 往缓存写数据
    210         /// </summary> 
    211         /// <param name="key">缓存的键值</param>
    212         /// <param name="obj">要放入缓存的数据</param>
    213         /// <param name="sqlDependncy">与数据库依赖的对象</param>
    214         public void AddRunTimeCache(string key, Object obj, System.Web.Caching.SqlCacheDependency sqlDependncy)
    215         {/*, DateTime.Now.AddDays(100),
    216                     System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, null*/
    217             System.Web.HttpRuntime.Cache.Insert(key, obj, sqlDependncy);
    218         }
    219 
    220         /// <summary>
    221         /// 获取运行时的缓存
    222         /// </summary>
    223         /// <param name="key"></param>
    224         /// <returns></returns>
    225         public object GetRunTimeCache(string key)
    226         {
    227             return System.Web.HttpRuntime.Cache[key];
    228         }
    229 
    230         /// <summary>
    231         /// 移除运行时缓存对象
    232         /// </summary>
    233         /// <param name="key"></param>
    234         public void RemoveRuntimeCache(string key)
    235         {
    236             System.Web.HttpRuntime.Cache.Remove(key);
    237         }
    238 
    239         #endregion
    240     }
    241 }
     }
  • 相关阅读:
    Swift 对AFN框架的封装
    iOS开发中静态库制作 之.a静态库制作及使用篇
    iOS 地图定位及大头针的基本使用
    swt中改变树的字体及颜色的实现
    为什么很多程序员选择跳槽?
    用SWT做圆形控件
    JAVA简单编码规则
    swt中改变表格字体大小及颜色的实现
    使用JAVA的反射机制反射带有数组参数的私有方法
    我的GIT使用经历
  • 原文地址:https://www.cnblogs.com/mybluesky99/p/2081535.html
Copyright © 2011-2022 走看看