代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
缓存常用操作
作者:
Dezai.CN
/ 发布于
2012/12/12
/
607
using System; using System.Web.Caching; using System.Web; using System.Collections; using System.Text.RegularExpressions; /// <summary> /// 缓存常用操作 /// LastEditTime:2011-10-10 /// </summary> public class CacheUtil { public CacheUtil() { //...在此处添加构造函数逻辑 } /// <summary> /// 增加一个缓存对象 /// </summary> /// <param name="strKey">键值名称</param> /// <param name="valueObj">被缓存对象</param> /// <param name="durationMin">缓存失效时间,默认为3分钟</param> /// <param name="priority">保留优先级(枚举数值),1最不会被清除,6最容易被内存管理清除,0为default /// 【1:NotRemovable;2:High;3:AboveNormal;4:Normal;5:BelowNormal;6:Low】</param> /// <returns>缓存写入是否成功true 、 false</returns> public static bool InsertCach(string strKey, object valueObj, int durationMin, int priority) { TimeSpan ts; if (strKey != null && strKey.Length != 0 && valueObj != null) { //建立回调委托的一个实例 //onRemove是委托执行的函数,具体方法看下面的onRemove(...) CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove); #region 失效时间设置 if (durationMin == 0) { ts = new TimeSpan(0, 3, 0);//如果不进行设置则为三分钟 } else { ts = new TimeSpan(0, durationMin, 0); } #endregion #region System.Web.Caching.Cache 对象中存储的项的相对优先级 CacheItemPriority cachePriority; switch (priority) { case 6: cachePriority = CacheItemPriority.Low; break; case 5: cachePriority = CacheItemPriority.BelowNormal; break; case 4: cachePriority = CacheItemPriority.Normal; break; case 3: cachePriority = CacheItemPriority.AboveNormal; break; case 2: cachePriority = CacheItemPriority.High; break; case 1: cachePriority = CacheItemPriority.NotRemovable; break; default: cachePriority = CacheItemPriority.Default; break; } #endregion HttpContext.Current.Cache.Insert(strKey, valueObj, null, DateTime.Now.Add(ts), System.Web.Caching.Cache.NoSlidingExpiration, cachePriority, callBack); return true; } else { return false; } } /// <summary> /// 判断缓存对象是否存在 /// </summary> /// <param name="strKey">缓存键值名称</param> /// <returns>是否存在true 、false</returns> public static bool IsExist(string strKey) { return HttpContext.Current.Cache[strKey] != null; } /// <summary> /// 读取缓存对象 /// </summary> /// <param name="strKey">缓存键值名称</param> /// <returns>缓存对象,objec类型</returns> public static object GetCache(string strKey) {//取出值 if (HttpContext.Current.Cache[strKey] != null) { object obj = HttpContext.Current.Cache[strKey]; if (obj == null) { return null; } else { return obj; } } else { return null; } } /// <summary> /// 删除缓存对象 /// </summary> /// <param name="strKey">缓存键值名称</param> public static void Remove(string strKey) { if (HttpContext.Current.Cache[strKey] != null) { HttpContext.Current.Cache.Remove(strKey); } } /// <summary> /// 根据设置的正则表达式清除缓存对象; /// 该方法使用正则匹配要删除的键值对象,如果键值命名统一规范,可批处理清除相关缓存数据O(∩_∩)O /// </summary> /// <param name="pattern">匹配键值的正则表达式</param> public static void RemoveByRegexp(string pattern) { if (pattern != "") { IDictionaryEnumerator enu = HttpContext.Current.Cache.GetEnumerator(); while (enu.MoveNext()) { string key = enu.Key.ToString(); if (Regex.IsMatch(key, pattern)) { Remove(key); } } } } /// <summary> /// 清除所有缓存对象 /// </summary> public static void Clear() { IDictionaryEnumerator enu = HttpContext.Current.Cache.GetEnumerator(); while (enu.MoveNext()) { Remove(enu.Key.ToString()); } } public static CacheItemRemovedReason reason; /// <summary> /// 此方法在值失效之前调用,可以用于在失效之前更新数据库,或从数据库重新获取数据 /// </summary> /// <param name="strKey"></param> /// <param name="obj"></param> /// <param name="reason"></param> private static void onRemove(string strKey, object obj, CacheItemRemovedReason r) { reason = r; } }
试试其它关键字
缓存常用操作
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3