[工具类]缓存辅助类

写在前面

在项目中的统计模块中,查询耗费的时间,实在是太长了,通过优化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 }

总结

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

博客地址: http://www.cnblogs.com/wolf-sun/
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4469600.html
时间: 2024-10-31 06:11:35

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

php实现网页缓存的工具类分享_php技巧

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

ehcache 缓存工具类

package com.test.util; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; /** * ehcache 缓存工具类 * * cacheName在ehcache.xml中配置 */ public class EhcacheUtil { public static CacheManager manager = CacheManager.cr

[工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)

写在前面 最近一直在弄文件传输组件,其中一个功能就是,在接收端接收文件时,如果文件已经存在了,则对其进行文件名+索引的方式进行自动重命名,之前也写个类似的工具类,总感觉代码太冗余,每回头想想,总觉得心里有疙瘩,下班的时候在地铁上,又想了想,感觉是我把问题想复杂了,遂将今天的思路整理一下,写了一个辅助类,记录在此. 上篇文章 [工具类]文件或文件夹xx已存在,则重命名为xx(n) ReNameHelper代码 1 using System; 2 using System.Collections.G

IOS开发--常用工具类收集整理(Objective-C)(持续更新)

 前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就不要傻傻的重复造轮子了,还是提高工作效率,早点完成工作早点回家陪老婆孩子. 所以下面备份的常用工具类一定是你需要的. 前提:你有一定的开发经验,知道它们在开发的什么地方需要,你都不知道用在哪里,那你需要个毛啊,还是好好另外学好基础吧.少儿不宜,请离开哦. 插件目录列表:(持续更新和添加) 1.UI

19个Android常用工具类汇总

 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils

JSP分页技术实现 使用工具类实现通用分页处理

js|分页 目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示.这种方法有两个主要的缺点:一是用户可能看到的是过期数据:二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降. 其它常见的方法还有每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录).这种方式

消息队列工具类(MSMQ)

所要做的是简化msmq的调用代码以及做到可替代性,实现后,调用消息队列代 码变为如下所示: QueueService srv = QueueService.Instance(); //检查存储DTO1的队列是否存在,如不存在则自动建立 srv.Prepare<DTO1>(); //发送类型为DTO1的消息 srv.Send<DTO1>(new DTO1() { p1="1", p2="2" }); //发送类型为DTO1的消息,并且将发送的消

项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

正文  慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实现签到 这次 我们实现 javaweb http json 交互 in action 题目很长,但我想让你们看下,给我点意见.   开始吧  实战  本次以经典的登录作为案例.登录做的好也是经典. 服务端 和 app端,服务端简略,app端详细介绍... 服务端 资料: <spring> @ResponseBody  将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,

Android快速开发系列 10个常用工具类

目录(?)[+] 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自[张鸿洋的博客] 打开大家手上的项目,基本都会有一大批的辅助类,今天特此整理出10个基本每个项目中都会使用的工具类,用于快速开发~~ 在此感谢群里给我发项目中工具类的兄弟/姐妹~ 1.日志工具类L.java [java] view plaincopy package com.zhy.utils;      import android.u