Cache缓存使用

之前做项目的时候需要用到缓存技术对客户端页面的一个List进行缓存设置,在这之前没使用过,因此对此做个记录:

1、缓存的引用空间:System.Web.Caching; 缓存命名空间主要提供三种操作:缓存数据对象、对象的缓存依赖和数据库的缓存依赖。其中缓存任何对象都使用一个类Cache,但当缓存发生改变时,普通对象和数据库对象的依赖处理不同。

2、管理缓存类:Cache

Cache类用来存储数据对象,并提供方法对这些对象进行编辑。Cache类属于字典类,其根据一定的规则存储用户需要的数据,这些数据的类型不受限制,可以是字符串、数组、数据表、Dataset和哈希表等。 使用Cache类的优点是当缓存的数据发生变化时,Cache类会让数据失效,并实现缓存数据的重新添加,然后通知应用程序,报告缓存的及时更新。

二、方法详解:

  Cache类的方法主要提供对缓存数据的编辑操作,如增、删、改等。

  Add 将数据添加到Cache对象 Insert 向Cache中插入数据项,可用于修改已经存在的数据缓存项 Remove 移除Cache对象中的缓存数据项 Get 从Cache对象中获取指定的数据项,注意返回的是Object类型,需要进行类型转换 GetType 从Cache对象中获取数据项的类型,判断数据类型后,方便进行转换

  Insert 向Cache中插入数据项,可用于修改已经存在的数据缓存项
  Remove 移除Cache对象中的缓存数据项
  Get 从Cache对象中获取指定的数据项,注意返回的是Object类型,需要进行类型转换

  GetType 从Cache对象中获取数据项的类型,判断数据类型后,方便进行转换

其中Add方法的函数声明如下:

 1 public Object Add (
 2         string key,
 3         Object value,
 4         CacheDependency dependencies,
 5         DateTime absoluteExpiration,
 6         TimeSpan slidingExpiration,
 7         CacheItemPriority priority,
 8          CacheItemRemovedCallback onRemoveCallback
 9 )
10             

  在使用Add方法时,以上7个参数是必需的,其代表意义如下:】

  — 参数“key”代表缓存数据项的键值,必须是唯一的。

  — 参数“value”代表缓存数据的内容,可以是任意类型。

— 参数“dependencies”表示缓存的依赖项,也就是此项的更改意味着缓存内容已经过期。如果没有依赖项,可将此值设置为NULL。

— 参数“absoluteExpiration”是日期型数据,表示缓存过期的时间,.NET 2.0提供的缓存在过期后是可以使用的,能使用多长时间,就看这个参数的设置。

— 参数“slidingExpiration”的类型表示一段时间间隔,表示缓存参数将在多长时间以后被删除,此参数与absoluteExpiration参数相关联。

— 参数“priority”表示撤销缓存的优先值,此参数的值取自枚举变量“CacheItemPriority”,优先级低的数据项将先被删除。此参数主要用在缓存退出对象时。

— 参数“onRemoveCallback”表示缓存删除数据对象时调用的事件,一般用做通知程序。

PS:在使用Cache时发现并不能像网上直接使用Cache类名进行操作,例如:Cache["temp"],在使用过程中会产生“无法将类名当变量名使用的错误”,同时如果不使用

1 Cache cache=new HttpRuntime();

方式进行声明也会产生“未将对象”的错误。

时间: 2024-10-10 20:51:09

Cache缓存使用的相关文章

注释驱动的 Spring cache 缓存介绍--转载

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存

Android 获取cache缓存的目录路径

转发请备注原文地址:https://www.niwoxuexi.com/blog/android00/article/224.html Android开发中,有时需要知道cache缓存的路径.我写了一个静态类,供大家能参考 public class  CommonUtil {        /**     * 获取cache路径     *     * @param context     * @return     */    public static String getDiskCache

注释驱动的 Spring cache 缓存介绍

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存

[转]注释驱动的 Spring cache 缓存介绍

原文:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ 概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能

spring boot guava cache 缓存学习

http://blog.csdn.net/hy245120020/article/details/78065676 ************************************************************ spring boot guava cache 缓存学习 自定义key 自定义全局key过期时间,缓存个数 针对单个key自定义过期时间,缓存个数 引入依赖 <dependency> <groupId>org.springframework.boo

Linux cache 缓存过大

linux cache 缓存过大 : 除重启服务 之外:直接释放内存方式之一: 修改配置释放cached内存: echo 1 > /proc/sys/vm/drop_caches 原文地址:https://www.cnblogs.com/sharesdk/p/9203903.html

System.Web.Cache缓存的封装和调用示例

目录 HttpCache类 Objects类 调用示例 HttpCache类 /// <summary> /// System.Web.Cache缓存的封装 /// </summary> public static class HttpCache { /// <summary> /// 当前应用程序的的缓存实例 /// </summary> public static System.Web.Caching.Cache Current { get { retu

cache缓存与伪共享

一.cache缓存 cache与主存之间是以块为单位读写的,这样设计是为了符合程序运行的局部性原理--时间局部性原理与空间局部性原理(参见<计算机组成原理>) 二维数组行遍历比列遍历要快,是由于二维数组是按行存储的,cache从主存中读入块,会将同行相邻元素一起写入cache,导致行遍历cache命中率大于列遍历cache命中率. public class CacheTest { static final int LINE_NUM = 1024; static final int COLUMN

cache缓存

ob,输出缓冲区,是output buffering的简称 FileCache.php 1 <?php 2 //本文件用来存储和读取文件中的数据 3 class FileCache{ 4 //使用单例(一个静态变量->保存对象:一个静态方法->判断是否属于自身) 5 private static $config;//用来存储配置信息 6 private static $obj; 7 private function __construct() {//禁止外部实例化对象 8 self::$

django cache 缓存系统

django 缓存系统 https://docs.djangoproject.com/en/dev/topics/cache/#the-low-level-cache-api http://www.ziqiangxuetang.com/django/django-cache.html 可以缓存能被pickle的对象 安装 pip install hiredis django-redis-cache setting中配置 #KEY_PREFIX  设置缓存键值的前缀 CACHES = { 'mys