Cahce缓存操作类
来源:互联网 发布:淘宝怎么看卖家销量 编辑:程序博客网 时间:2024/06/05 16:46
缓存操作类
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web;using XiaoFeng;namespace XiaoFeng.Cache{ /// <summary> /// 缓存操作类 /// Version : V 1.0 /// Create Date : 2016-12-24 /// Author : Jacky /// QQ : 7092734 /// Email : jacky@zhuovi.com /// </summary> public class CacheHelper { /// <summary> /// 缓存列表 /// </summary> public static CacheData DataList { get { return new CacheData(); } } /// <summary> /// 获取数据缓存 /// </summary> /// <param name="key">用于引用该对象的缓存键</param> /// <returns>指定的缓存项</returns> public static object get(string key) { System.Web.Caching.Cache _ = HttpRuntime.Cache; return _[key]; } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">用于引用该对象的缓存键</param> /// <param name="value">要插入缓存中的对象</param> public static void set(string key, object value) { System.Web.Caching.Cache _ = HttpRuntime.Cache; _.Insert(key, value); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">用于引用该对象的缓存键</param> /// <param name="value">要插入缓存中的对象</param> /// <param name="Timeout">最后一次访问所插入对象时与该对象到期时之间的时间间隔。 如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将到期并被从缓存中移除。如果使用可调到期,则 absoluteExpiration 参数必须为 System.Web.Caching.Cache.NoAbsoluteExpiration。</param> public static void set(string key, object value, TimeSpan Timeout) { System.Web.Caching.Cache _ = HttpRuntime.Cache; _.Insert(key, value, null, DateTime.MaxValue, Timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">用于引用该对象的缓存键</param> /// <param name="value">要插入缓存中的对象</param> /// <param name="path">文件路径或目录</param> public static void set(string key, object value, string path) { System.Web.Caching.Cache _ = HttpRuntime.Cache; _.Insert(key, value, new System.Web.Caching.CacheDependency(path)); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">用于引用该对象的缓存键</param> /// <param name="value">要插入缓存中的对象</param> /// <param name="absoluteExpiration">所插入对象将到期并被从缓存中移除的时间。 要避免可能的本地时间问题(例如从标准时间改为夏时制),请使用 System.DateTime.UtcNow,而不是 System.DateTime.Now 作为此参数值。 如果使用绝对到期,则 slidingExpiration 参数必须为 System.Web.Caching.Cache.NoSlidingExpiration。</param> /// <param name="slidingExpiration">最后一次访问所插入对象时与该对象到期时之间的时间间隔。 如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将到期并被从缓存中移除。如果使用可调到期,则 absoluteExpiration 参数必须为 System.Web.Caching.Cache.NoAbsoluteExpiration。</param> public static void set(string key, object value, DateTime absoluteExpiration, TimeSpan slidingExpiration) { System.Web.Caching.Cache _ = HttpRuntime.Cache; _.Insert(key, value, null, absoluteExpiration, slidingExpiration); } /// <summary> /// 移除指定数据缓存 /// </summary> /// <param name="key">要移除的缓存项的 System.String 标识符。</param> public static void remove(string key) { System.Web.Caching.Cache _ = HttpRuntime.Cache; _.Remove(key); } /// <summary> /// 移除全部缓存 /// </summary> public static void clear() { System.Web.Caching.Cache _ = HttpRuntime.Cache; IDictionaryEnumerator CacheEnum = _.GetEnumerator(); while (CacheEnum.MoveNext()) _.Remove(CacheEnum.Key.ToString()); } } /// <summary> /// 缓存数据操作类 /// </summary> public class CacheData { #region 构造器 /// <summary> /// 设置缓存数据 /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public CacheData(string key, object value) { this.add(key, value); } /// <summary> /// 无参构造器 /// </summary> public CacheData() { } #endregion #region 属性 /// <summary> /// 缓存Key值 /// </summary> private string Key { get { return System.AppDomain.CurrentDomain.SetupInformation.ConfigurationFile.ToLower() == "web.config" ? HttpContext.Current.Request.UserHostName.ToLower() : "ZW-PublicCacheKey"; } } /// <summary> /// 缓存数据 /// </summary> public Dictionary<string, object> data { get { var _ = CacheHelper.get(this.Key); if (_ == null) CacheHelper.set(this.Key, new Dictionary<string, object>()); return _ == null ? new Dictionary<string, object>() : (Dictionary<string, object>)_; } } #endregion #region 方法 /// <summary> /// 添加缓存 /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public void add(string key, object value) { if (this.data.ContainsKey(key)) { if (!this.data[key].Equals(value)) { this.data[key] = value; } } else { this.data.Add(key, value); } } /// <summary> /// 获取缓存值 /// </summary> /// <param name="key">键</param> /// <returns></returns> public object get(string key) { return this.data.ContainsKey(key) ? this.data[key] : null; } /// <summary> /// 移除 /// </summary> /// <param name="key">键</param> public void remove(string key) { if(this.data.ContainsKey(key)) this.data.Remove(key); } /// <summary> /// 清空缓存 /// </summary> public void clear() { this.data.Clear(); } #endregion }}
阅读全文
0 0
- Cahce缓存操作类
- TLB & cahce & 缓存对齐
- .NET Framework 内置缓存机制(Cahce)(一)
- 缓存Cache操作类
- PHP缓存操作类
- C#缓存操作类
- PHP缓存操作类
- library cahce pin
- dump library cahce
- angularjs IE cahce
- 数据缓存 dao类操作
- MYSQL操作类, 连贯操作, 缓存
- 缓存操作
- 图解cos-html-cahce原理
- 缓存操作类(存储UserInfo信息)
- 对缓存相关的操作类
- 工厂反射、缓存相关的操作类
- 【代码笔记】iOS-缓存路径操作类
- hdu3530 单调队列
- 批处理经验积累(bat)
- Spring Boot CLI 下载 安装
- Hibernate-validator校验框架
- 无状态的bean和有状态的bean
- Cahce缓存操作类
- 【leetcode】627. Swap Salary
- SMBFS 服务器搭建(Linux 和 Windows 之间共享文件)
- Android跳转到QQ
- 随机数初探
- 太阳系演化时序表
- HTML5-webStroge
- gh0st从VC6到VS2010迁移
- 浅谈分布式锁