[工具类]缓存辅助类
写在前面
在项目中的统计模块中,查询耗费的时间,实在是太长了,通过优化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 10 { 11 /// <summary> 12 /// 缓存辅助类 13 /// </summary> 14 public static class CacheHelper 15 { 16 /// <summary> 17 /// 根据键获取缓存数据 18 /// </summary> 19 /// <param name="cacheKey"></param> 20 /// <returns></returns> 21 public static object GetCache(string cacheKey) 22 { 23 Cache objCache = HttpRuntime.Cache; 24 return objCache.Get(cacheKey); 25 } 26 /// <summary> 27 /// 设置缓存 28 /// </summary> 29 /// <param name="cacheKey">缓存键</param> 30 /// <param name="objValue">缓存键</param> 31 public static void SetCache(string cacheKey, object objValue) 32 { 33 Cache cache = HttpRuntime.Cache; 34 cache.Insert(cacheKey, objValue); 35 } 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) 43 { 44 Cache cache = HttpRuntime.Cache; 45 cache.Insert(cacheKey, objValue, null, DateTime.MaxValue, timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null); 46 } 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) 55 { 56 Cache cache = HttpRuntime.Cache; 57 cache.Insert(cacheKey, objValue, null, absoluteExpiration, slidingExpiration); 58 } 59 /// <summary> 60 /// 移除指定的缓存 61 /// </summary> 62 /// <param name="cacheKey"></param> 63 public static void RemoveCache(string cacheKey) 64 { 65 System.Web.Caching.Cache cache = HttpRuntime.Cache; 66 cache.Remove(cacheKey); 67 } 68 /// <summary> 69 /// 移除全部缓存 70 /// </summary> 71 public static void RemoveAllCache() 72 { 73 System.Web.Caching.Cache cache = HttpRuntime.Cache; 74 IDictionaryEnumerator CacheEnum = cache.GetEnumerator(); 75 while (CacheEnum.MoveNext()) 76 { 77 cache.Remove(CacheEnum.Key.ToString()); 78 } 79 } 80 } 81 }
总结
缓存用到的地方很多,封装的这个类,也算很基础的东西了,算是记录一下,以后用到的时候,方便查找。
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
标签:
Cache
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义