您的足迹:首页 > 未分类 >一个对缓存操作的类DataCache

一个对缓存操作的类DataCache

using System;
using System.Web;
using System.Collections;

namespace eBlog.Cache
{
	/// <summary>
	/// 缓存相关的操作类
/// </summary>
	public class DataCache
	{
	/// <summary>
	/// 获取当前应用程序指定CacheKey的Cache值
/// </summary>
	/// <param name="cacheKey"></param>
	/// <returns></returns>
	public static object GetCache(string cacheKey)
	{
	System.Web.Caching.Cache objCache = HttpRuntime.Cache;
	return objCache[cacheKey];
	}

/// <summary>
 /// 是否存在这个缓存
/// </summary>
 /// <param name="cacheKey"></param>
 /// <returns></returns>
 public static bool Exists(string cacheKey)
 {
 System.Web.Caching.Cache objCache = HttpRuntime.Cache;
 return objCache[cacheKey] != null;
 }

/// <summary>
	/// 设置当前应用程序指定CacheKey的Cache值
/// </summary>
	/// <param name="cacheKey"></param>
	/// <param name="objObject"></param>
	public static void SetCache(string cacheKey, object objObject)
	{
	System.Web.Caching.Cache objCache = HttpRuntime.Cache;
	objCache.Insert(cacheKey, objObject);
	}

/// <summary>
	/// 设置当前应用程序指定CacheKey的Cache值
/// </summary>
	/// <param name="cacheKey"></param>
	/// <param name="objObject"></param>
	/// <param name="absoluteExpiration"></param>
	/// <param name="slidingExpiration"></param>
	public static void SetCache(string cacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration )
	{
	System.Web.Caching.Cache objCache = HttpRuntime.Cache;
	objCache.Insert(cacheKey, objObject,null,absoluteExpiration,slidingExpiration);

}
 public static void SetCache(string cacheKey, object objObject, int minutes)
 {
 SetCache(cacheKey, objObject, DateTime.Now.AddMinutes(minutes), TimeSpan.Zero);
 }

public static void RemoveCache(string cacheKey)
 {
 System.Web.Caching.Cache objCache = HttpRuntime.Cache;
 objCache.Remove(cacheKey);
 }

#region 清除所有缓存
/// <summary>
 /// 有时可能需要立即更新,这里就必须手工清除一下Cache 
 /// Cache类有一个Remove方法,但该方法需要提供一个CacheKey,但整个网站的CacheKey我们是无法得知的 
/// 只能经过遍历 
/// </summary>
 public static void RemoveAllCache()
 {

System.Web.Caching.Cache cache = HttpRuntime.Cache;
 IDictionaryEnumerator cacheEnum = cache.GetEnumerator();
 ArrayList al = new ArrayList();
 while (cacheEnum.MoveNext())
 {
 al.Add(cacheEnum.Key);
 }

foreach (string key in al)
 {
 cache.Remove(key);
 }
 }
 #endregion

#region 显示所有缓存

//显示所有缓存 
public static string Show()
 {
 string str = "";
 IDictionaryEnumerator cacheEnum = HttpRuntime.Cache.GetEnumerator();

while (cacheEnum.MoveNext())
 {
 str += "<br />缓存名<b title=" + cacheEnum.Value.ToString() + ">[" + cacheEnum.Key + "]</b><br />";
 }
 return "当前总缓存数:" + HttpRuntime.Cache.Count + "<br />" + str;
 }

#endregion
	}
}
本博客所有文章如无特别注明均为原创。作者:cc复制或转载请以超链接形式注明转自 我的博客
原文地址《一个对缓存操作的类DataCache

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)