[工具类]缓存辅助类

写在前面

在项目中的统计模块中,查询耗费的时间,实在是太长了,通过优化sql语句或者添加缓存来提高查询的速度,自己就弄了一个缓存的辅助类,方便操作缓存中的数据。

CacheHelper

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 using System.Web;
 8 using System.Web.Caching;
 9 namespace WebSite.Statistics.Core.Utilities
10 {
11     /// <summary>
12     /// 缓存辅助类
13     /// </summary>
14     public static class CacheHelper
15     {
16         /// <summary>
17         /// 根据键获取缓存数据
18         /// </summary>
19         /// <param name="cacheKey"></param>
20         /// <returns></returns>
21         public static object GetCache(string cacheKey)
22         {
23             Cache objCache = HttpRuntime.Cache;
24             return objCache.Get(cacheKey);
25         }
26         /// <summary>
27         ///  设置缓存
28         /// </summary>
29         /// <param name="cacheKey">缓存键</param>
30         /// <param name="objValue">缓存键</param>
31         public static void SetCache(string cacheKey, object objValue)
32         {
33             Cache cache = HttpRuntime.Cache;
34             cache.Insert(cacheKey, objValue);
35         }
36         /// <summary>
37         /// 设置缓存
38         /// </summary>
39         /// <param name="cacheKey">缓存键</param>
40         /// <param name="objValue">缓存的值</param>
41         /// <param name="timeout">过期时间</param>
42         public static void SetCache(string cacheKey, object objValue, TimeSpan timeout)
43         {
44             Cache cache = HttpRuntime.Cache;
45             cache.Insert(cacheKey, objValue, null, DateTime.MaxValue, timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
46         }
47         /// <summary>
48         /// 设置缓存
49         /// </summary>
50         /// <param name="cacheKey">缓存键</param>
51         /// <param name="objValue">缓存的value</param>
52         /// <param name="absoluteExpiration">绝对过期时间</param>
53         /// <param name="slidingExpiration">滑动过期时间</param>
54         public static void SetCache(string cacheKey, object objValue, DateTime absoluteExpiration, TimeSpan slidingExpiration)
55         {
56             Cache cache = HttpRuntime.Cache;
57             cache.Insert(cacheKey, objValue, null, absoluteExpiration, slidingExpiration);
58         }
59         /// <summary>
60         /// 移除指定的缓存
61         /// </summary>
62         /// <param name="cacheKey"></param>
63         public static void RemoveCache(string cacheKey)
64         {
65             System.Web.Caching.Cache cache = HttpRuntime.Cache;
66             cache.Remove(cacheKey);
67         }
68         /// <summary>
69         /// 移除全部缓存
70         /// </summary>
71         public static void RemoveAllCache()
72         {
73             System.Web.Caching.Cache cache = HttpRuntime.Cache;
74             IDictionaryEnumerator CacheEnum = cache.GetEnumerator();
75             while (CacheEnum.MoveNext())
76             {
77                 cache.Remove(CacheEnum.Key.ToString());
78             }
79         }
80     }
81 }

总结

缓存用到的地方很多,封装的这个类,也算很基础的东西了,算是记录一下,以后用到的时候,方便查找。

时间: 2024-08-01 00:11:14

[工具类]缓存辅助类的相关文章

Unity+NGUI打造网络图片异步加载与本地缓存工具类(一)

我们在移动端的开发中,异步网络图片加载用的非常的多,在unity当中虽然有AssetBundle的存在,一般是先加载好游戏资源然后再进入场景,但是还有不少地方能够用到异步网络图片的加载以及其缓存机制. 我之前也写过两个版本的ios中的异步网络图片加载helper类,所以今天按照同样的思路,也想做一个好用的helper类给大家使用以及简单的说下实现原理. 首先我们加载一张网络图片,要做的事情分步来讲为: 0.开始之前设置一张固定的图片作为占位图(placeholder),表示我们的图片还没加载好,

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

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

【安卓笔记】硬盘缓存工具类的编写

DiskLruCache(https://github.com/JakeWharton/DiskLruCache)想必大家都很熟悉.(不熟悉的请看这里),它是jakewharton大神写的一个开源库,提供了硬盘缓存的方案. 但是该库的API比较简单,有时候并不能满足我们使用.比如说如果你想把缓存中的数据以Bitmap的形式返回,API并没有提供这样的方法,我们必须通过DiskLruCache#get方法返回来的Snapshot获得输入流,然后将流转化为Bitmap.另外,构建DiskLruCac

php 缓存工具类 实现网页缓存

php程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存 一.文件缓存 二.数据查询结果缓存,使用内存来实现高速缓存 本例主要使用文件缓存. 主要原理使用缓存函数来存储网页显示结果,如果在规定时间里再次调用则可以加载缓存文件. 工具类代码: // 文件缓存类 class Cache { /** * $dir : 缓存文件存放目录 * $lifetime : 缓存文件有效期,单位为秒 * $cacheid : 缓存文件路径,包含文件名 * $ext :

单服务缓存redis工具类

import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * 单服务缓存redis工具类(需要额外jar包jedis) */ public class RedisSingletonPool { private static String ip = ConfigUtil.readConfigForObject("SIN

缓存工具类

安卓开发一般都需要进行数据缓存,常用操作老司机已为你封装完毕,经常有小伙伴问怎么判断缓存是否可用,那我告诉你,你可以用这份工具进行存储和查询,具体可以查看源码,现在为你开车,Demo传送门. 站点 缓存工具类 → AppACache put : 保存String数据到缓存中getAsString : 读取String数据getAsJSONObject : 读取JSONObject数据getAsJSONArray : 读取JSONArray数据getAsBinary : 获取byte数据getAs

缓存统一管理工具类--android

import android.content.Context; import android.os.Environment; import android.support.annotation.Nullable; import com.lidroid.xutils.db.annotation.NotNull; import junit.framework.Assert; import .R; import .utils.*; import java.io.File; import java.ut

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

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

【ListViewJson】【MainActivity功能性分析,不讨论具体工具类的实现】【android解析json数据(包含对图片数据的异步缓存处理),并将其加载到listview中】

最近遇到了一个相当好.对初学者相当友善的项目,是描述如何将json数据解析,并加载到listview中. 但是个人认为以后所有类似功能的实现都可以使用这套工具. 项目也可以使用这套架构. 这个项目是处理每个news只有一个imgurl,应该考虑一下当imgurl数量不定的时候具体应该怎么解决. 首先项目源码结构如下: 项目下载链接:http://download.csdn.net/download/y562810463/8004245 在这个项目中的com.demo.app.common包完全可