先创建一个CacheHelper.cs类,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
using System; using System.Web; using System.Collections; using System.Web.Caching; public class CacheHelper { /// <summary> /// 获取数据缓存 /// </summary> /// <param name="cacheKey">键</param> public static object GetCache( string cacheKey) { var objCache = HttpRuntime.Cache.Get(cacheKey); return objCache; } /// <summary> /// 设置数据缓存 /// </summary> public static void SetCache( string cacheKey, object objObject) { var objCache = HttpRuntime.Cache; objCache.Insert(cacheKey, objObject); } /// <summary> /// 设置数据缓存 /// </summary> public static void SetCache( string cacheKey, object objObject, int timeout = 7200) { try { if (objObject == null ) return ; var objCache = HttpRuntime.Cache; //相对过期 //objCache.Insert(cacheKey, objObject, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null); //绝对过期时间 objCache.Insert(cacheKey, objObject, null , DateTime.Now.AddSeconds(timeout), TimeSpan.Zero, CacheItemPriority.High, null ); } catch (Exception) { //throw; } } /// <summary> /// 移除指定数据缓存 /// </summary> public static void RemoveAllCache( string cacheKey) { var cache = HttpRuntime.Cache; cache.Remove(cacheKey); } /// <summary> /// 移除全部缓存 /// </summary> public static void RemoveAllCache() { var cache = HttpRuntime.Cache; var cacheEnum = cache.GetEnumerator(); while (cacheEnum.MoveNext()) { cache.Remove(cacheEnum.Key.ToString()); } } } |
然后是调用:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public IEnumerable<CompanyModel> FindCompanys() { var cache = CacheHelper.GetCache( "commonData_Company" ); //先读取 if (cache == null ) //如果没有该缓存 { var queryCompany = _base.CompanyModel(); //从数据库取出 var enumerable = queryCompany.ToList(); CacheHelper.SetCache( "commonData_Company" , enumerable); //添加缓存 return enumerable; } var result = (List<CompanyModel>)cache; //有就直接返回该缓存 return result; } |
测试结果:
首次加载进来是为null,然后读取数据库,添加进缓存,当前返回前台的是从数据库中取出的数据。
刷新页面,发现缓存中已经有了读出的30条数据,
然后接下来走,返回缓存中的数据:
以上就是C# Cache缓存读取的设置方法的详细内容,更多关于C# Cache缓存读取的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/lgx5/p/10785920.html