缓存操作类
引入
using System.Web.Caching;
/* Key//缓存名 Value//要缓存的对象 Dependencies//依赖项 AbsoluteExpiration//绝对过期时间 SlidingExpiration//相对过期时间 Priority//优先级 CacheItemRemovedCallback //缓存过期引发事件 */ /// <summary> /// 缓存 /// </summary> /// <typeparam name="T"></typeparam> public class CacheHelper<T> { /// <summary> /// 获取缓存数据 /// </summary> /// <param name="cachekey"></param> /// <returns></returns> public static T GetCache(string cachekey) { return (T)HttpRuntime.Cache[cachekey]; } /// <summary> /// 数据插入缓存(永不过期) /// </summary> /// <param name="cachekey"></param> /// <param name="data"></param> public static void SetCache(string cachekey, T data) { HttpRuntime.Cache.Insert(cachekey, data); } /// <summary> /// 数据插入缓存(依赖) /// </summary> /// <param name="cachekey"></param> /// <param name="data"></param> /// <param name="dependencies">对文件或者目录的依赖</param> public static void SetCache(string cachekey, T data, CacheDependency dependencies) //依赖 { HttpRuntime.Cache.Insert(cachekey, data, dependencies); } /// <summary> /// 数据插入缓存(绝对事件过期) /// </summary> /// <param name="cachekey"></param> /// <param name="data"></param> /// <param name="timeout"></param> public static void SetCache(string cachekey, T data, TimeSpan timeout) { HttpRuntime.Cache.Insert(cachekey, data, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null); } /// <summary> /// 设置缓存数据(绝对时间过期) /// </summary> /// <param name="cachekey"></param> /// <param name="objObject"></param> /// <param name="absoluteExpiration"></param> /// <param name="slidingExpiration"></param> public static void SetCache(string cachekey, T data, DateTime absoluteExpiration, TimeSpan slidingExpiration) { HttpRuntime.Cache.Insert(cachekey, data, null, absoluteExpiration, slidingExpiration); } /// <summary> /// 移除指定缓存数据 /// </summary> /// <param name="cachekey"></param> public static void RemoveAllCache(string cachekey) { HttpRuntime.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()); } } }
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现