zl程序教程

您现在的位置是:首页 >  工具

当前栏目

[工具类]缓存辅助类

工具缓存 辅助
2023-09-14 09:01:01 时间

在项目中的统计模块中,查询耗费的时间,实在是太长了,通过优化sql语句或者添加缓存来提高查询的速度,自己就弄了一个缓存的辅助类,方便操作缓存中的数据。

CacheHelper 复制代码
 1 using System;

 2 using System.Collections;

 3 using System.Collections.Generic;

 4 using System.Linq;

 5 using System.Text;

 6 using System.Threading.Tasks;

 7 using System.Web;

 8 using System.Web.Caching;

 9 namespace WebSite.Statistics.Core.Utilities

11 /// summary 

12 /// 缓存辅助类

13 /// /summary 

14 public static class CacheHelper

16 /// summary 

17 /// 根据键获取缓存数据

18 /// /summary 

19 /// param name="cacheKey" /param 

20 /// returns /returns 

21 public static object GetCache(string cacheKey)

23 Cache objCache = HttpRuntime.Cache;

24 return objCache.Get(cacheKey);

26 /// summary 

27 /// 设置缓存

28 /// /summary 

29 /// param name="cacheKey" 缓存键 /param 

30 /// param name="objValue" 缓存键 /param 

31 public static void SetCache(string cacheKey, object objValue)

33 Cache cache = HttpRuntime.Cache;

34 cache.Insert(cacheKey, objValue);

36 /// summary 

37 /// 设置缓存

38 /// /summary 

39 /// param name="cacheKey" 缓存键 /param 

40 /// param name="objValue" 缓存的值 /param 

41 /// param name="timeout" 过期时间 /param 

42 public static void SetCache(string cacheKey, object objValue, TimeSpan timeout)

44 Cache cache = HttpRuntime.Cache;

45 cache.Insert(cacheKey, objValue, null, DateTime.MaxValue, timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);

47 /// summary 

48 /// 设置缓存

49 /// /summary 

50 /// param name="cacheKey" 缓存键 /param 

51 /// param name="objValue" 缓存的value /param 

52 /// param name="absoluteExpiration" 绝对过期时间 /param 

53 /// param name="slidingExpiration" 滑动过期时间 /param 

54 public static void SetCache(string cacheKey, object objValue, DateTime absoluteExpiration, TimeSpan slidingExpiration)

56 Cache cache = HttpRuntime.Cache;

57 cache.Insert(cacheKey, objValue, null, absoluteExpiration, slidingExpiration);

59 /// summary 

60 /// 移除指定的缓存

61 /// /summary 

62 /// param name="cacheKey" /param 

63 public static void RemoveCache(string cacheKey)

65 System.Web.Caching.Cache cache = HttpRuntime.Cache;

66 cache.Remove(cacheKey);

68 /// summary 

69 /// 移除全部缓存

70 /// /summary 

71 public static void RemoveAllCache()

73 System.Web.Caching.Cache cache = HttpRuntime.Cache;

74 IDictionaryEnumerator CacheEnum = cache.GetEnumerator();

75 while (CacheEnum.MoveNext())

77 cache.Remove(CacheEnum.Key.ToString());

81 }
复制代码

缓存用到的地方很多,封装的这个类,也算很基础的东西了,算是记录一下,以后用到的时候,方便查找。


博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4469600.html
3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码) NetDh框架适用于C/S、B/S的服务端框架,可用于项目开发和学习。目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型、多库实例,简单强大; 此部分具体说明可参考博客: https://www.
读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM控制的,我们只需要上好相应的锁即可。如果代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁。 import java.util.Random; import java.util.concu