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
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, null, new 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 }
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, null, new 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 }