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 }
 }
posted @ 2011-06-15 15:16  Code & Life  阅读(1678)  评论(0编辑  收藏  举报