Cache 概述

简介:

基本用法

using System.Web.Caching
DataSet ds = new  DataSet();
//
Cache.Insert( " Data " ,ds);

将DataSet中的数据缓存,不设置过期时间。

Cache.Insert("Data",ds,null,DateTime.Now.AddMinutes(2),TimeSpan.Zero);

绝对时间过期,缓存在2分钟后将过期。

Cache.Insert( " Data " ,ds, null ,DateTime.MaxValue,TimeSpan.FromMinutes( 2 ));

平滑时间过期,缓存在连续2分钟没有访问则过期。

Cache.Add方法也可添加缓存,但只能添加缓存中没有项,有则失败,但不出异常;而Cache.Insert方法能覆盖原来的重复项。

缓存依赖

CacheDependency  cd = new  CacheDependency (Server.MapPath( " myFile.txt " ));
DataSet ds
= new  DataSet ();
//
Cache.Insert ( " Data " ,ds,cd);

myFile.txt文件被修改后,缓存失效,否则缓存一直存在。

缓存更新策略
一般做法:

DataSet ds  =   new  DataSet();
//
if  (Cache[ " Data " ==   null )
{
    ds 
= GetData();
    Cache.Insert(
"Data", ds, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero);
}

else
{
    ds 
= (DataSet)Cache["Data"];
}

此为被动更新,如果缓存为空,则为数据库获取数据,如果缓存不为空,则直接从缓存中获取数据。缺点就是如果缓存失效时,去访问数据得从数据库中查询,花费时间。可以利用缓存的回调功能让缓存过期后自动续建,实现自动更新的目的。

protected   void  CacheCallback( string  key,  object  value, CacheItemRemovedReason remov)
{
        
//缓存过期处理方法
}

 

DataSet ds  =   new  DataSet();
//
Cache.Insert( " Data " , ds,  null , DateTime.Now.AddMinutes( 2 ), TimeSpan.Zero, CacheItemPriority.Default, CacheCallback);

缓存过期时回调用CacheCallback方法实现自动更新。

本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2007/11/18/963081.html ,如需转载请自行联系原作者
相关文章
|
移动开发 Java 数据安全/隐私保护
C#RSA加密解密签名类,支持PEM格式解密(1024或2048位)
主要介绍了PEM PKCS#8、PKCS#1公钥和私钥在C#中的使用,并以此为基础写的C#函数方法。
3653 1
|
2月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
2月前
|
存储 人工智能 缓存
SpringBoot离线应用的5种实现方式
在网络依赖日益加深的今天,离线应用的重要性不断上升。本文介绍了基于SpringBoot实现离线应用的五种方式,重点讲解了嵌入式数据库的实现原理与步骤,包括本地数据存储、操作缓存、资源本地化和状态管理等核心功能,分析了其优缺点及适用场景,帮助开发者在无网络环境下构建稳定可靠的应用。
134 0
|
2月前
|
存储 缓存 NoSQL
Spring Cache缓存框架
Spring Cache是Spring体系下的标准化缓存框架,支持多种缓存(如Redis、EhCache、Caffeine),可独立或组合使用。其优势包括平滑迁移、注解与编程两种使用方式,以及高度解耦和灵活管理。通过动态代理实现缓存操作,适用于不同业务场景。
255 0
|
10月前
|
缓存 NoSQL Java
什么是缓存?如何在 Spring Boot 中使用缓存框架
什么是缓存?如何在 Spring Boot 中使用缓存框架
571 0
|
数据库连接 API 数据库
SqlAlchemy 2.0 中文文档(三十)(2)
SqlAlchemy 2.0 中文文档(三十)
193 0
|
缓存 NoSQL Java
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
665 0
|
监控 网络安全 网络虚拟化
在 Cisco 设备上配置 GRE 隧道
【8月更文挑战第31天】
676 0
在 Cisco 设备上配置 GRE 隧道
|
Linux
linux两台服务器时间同步
linux两台服务器时间同步
783 0
|
缓存 NoSQL Java
分布式系列教程(01) -Ehcache缓存架构
分布式系列教程(01) -Ehcache缓存架构
563 0