一个对缓存操作的类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
}
}

一个对缓存操作的类DataCache,布布扣,bubuko.com

时间: 2024-10-14 20:42:05

一个对缓存操作的类DataCache的相关文章

封装php redis缓存操作类

封装php redis缓存操作类,集成了连接redis并判断连接是否成功,redis数据库选择,检测redis键是否存在,获取值,写入值,设置生存时间和删除清空操作. php redis类代码: <?php/*** redisdrive.class.php* php redis 操作类**/class redisdrive{ //键名 public $key; //值 public $value; //默认生存时间 public $expire = 86400; /*60*60*24*/ //连

郑州尚学堂:php实现网页缓存的工具类分享

PHP是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP 独特的语法混合了C.Java.Perl以及PHP自创的语法.它可以比CGI或者Perl更快速地执行动态网页.今天给大家分享php实现网页缓存的工具类的代码及使用方法,非常的实用,希望可以对有需求的小伙伴带来帮助. php程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存 一.文件缓存 二.数据查询结果缓存,使用内存来实现高速

Android三级缓存机制工具类的实现

一.三级缓存概述 (一)三级缓存的三级 第一级是内存,最快,不需要网络 第二级是本地,不需要网络 第三级是网络,需要网络请求 三级缓存机制的思想: 如果在内存中获取到数据,就不去本地和网络中获取. 如果在本地中获取到数据就不去网络中获取, 如果内存和本地中不存在数据,就要去网络中请求数据 三级缓存技术能有效节省用户的流量,但是也会增加一些内存负担. 二.使用示例展示三级缓存工具栏类的使用 程序运行后的页面: 虽然只用一个按钮和一个图片显示,但是通过测试(联网状态和断网状态对比)能知道图片是从网络

JWT(JSON Web Tokens)操作帮助类

载荷实体: /// <summary> /// JWT载荷实体 /// </summary> public sealed class JWTPlayloadInfo { /// <summary> /// jwt签发者 /// </summary> public string iss { get; set; } = "Berry.Service"; /// <summary> /// jwt所面向的用户 /// </su

C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题

#include "stdafx.h" #include <iostream> #include <algorithm> using namespace std; class Base { public: int num; virtual void func() { cout<<"Do something in Base"<<endl; } }; class Derived:private Base { public:

Asp.Net 文件操作基类

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.T

QT 操作excel 类封装

1 # pro file 2 [plain] view plaincopy 3 CONFIG += qaxcontainer 4 5 QT += core 6 7 QT -= gui 8 9 TARGET = QExcel 10 CONFIG += console 11 CONFIG -= app_bundle 12 13 TEMPLATE = app 14 15 16 SOURCES += main.cpp \ 17 qexcel.cpp 18 19 HEADERS += \ 20 qexce

ASP.NET文件操作通用类

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.IO; 7 using System.Web; 8 using System.Web.UI; 9 using System.Web.UI.WebControls; 10 11 12 public class WebFileHelper 13 { 14 15 FileInfo f

简洁的PHP操作SQLite类

SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快. 这里为大家提供一个简洁的PHP操作SQLite类