using System;
using System.Web.Caching;
using System.Web;
using System.Collections;
using System.Text.RegularExpressions;
/// <summary>
/// 缓存常用操作
/// LastEditTime:2011-10-10
/// </summary>
public class CacheUtil
{
public CacheUtil()
{
//...在此处添加构造函数逻辑
}
/// <summary>
/// 增加一个缓存对象
/// </summary>
/// <param name="strKey">键值名称</param>
/// <param name="valueObj">被缓存对象</param>
/// <param name="durationMin">缓存失效时间,默认为3分钟</param>
/// <param name="priority">保留优先级(枚举数值),1最不会被清除,6最容易被内存管理清除,0为default
/// 【1:NotRemovable;2:High;3:AboveNormal;4:Normal;5:BelowNormal;6:Low】</param>
/// <returns>缓存写入是否成功true 、 false</returns>
public static bool InsertCach(string strKey, object valueObj, int durationMin, int priority)
{
TimeSpan ts;
if (strKey != null && strKey.Length != 0 && valueObj != null)
{
//建立回调委托的一个实例
//onRemove是委托执行的函数,具体方法看下面的onRemove(...)
CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
#region 失效时间设置
if (durationMin == 0)
{
ts = new TimeSpan(0, 3, 0);//如果不进行设置则为三分钟
}
else
{
ts = new TimeSpan(0, durationMin, 0);
}
#endregion
#region System.Web.Caching.Cache 对象中存储的项的相对优先级
CacheItemPriority cachePriority;
switch (priority)
{
case 6:
cachePriority = CacheItemPriority.Low;
break;
case 5:
cachePriority = CacheItemPriority.BelowNormal;
break;
case 4:
cachePriority = CacheItemPriority.Normal;
break;
case 3:
cachePriority = CacheItemPriority.AboveNormal;
break;
case 2:
cachePriority = CacheItemPriority.High;
break;
case 1:
cachePriority = CacheItemPriority.NotRemovable;
break;
default:
cachePriority = CacheItemPriority.Default;
break;
}
#endregion
HttpContext.Current.Cache.Insert(strKey, valueObj, null, DateTime.Now.Add(ts), System.Web.Caching.Cache.NoSlidingExpiration, cachePriority, callBack);
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断缓存对象是否存在
/// </summary>
/// <param name="strKey">缓存键值名称</param>
/// <returns>是否存在true 、false</returns>
public static bool IsExist(string strKey)
{
return HttpContext.Current.Cache[strKey] != null;
}
/// <summary>
/// 读取缓存对象
/// </summary>
/// <param name="strKey">缓存键值名称</param>
/// <returns>缓存对象,objec类型</returns>
public static object GetCache(string strKey)
{//取出值
if (HttpContext.Current.Cache[strKey] != null)
{
object obj = HttpContext.Current.Cache[strKey];
if (obj == null)
{
return null;
}
else
{
return obj;
}
}
else
{
return null;
}
}
/// <summary>
/// 删除缓存对象
/// </summary>
/// <param name="strKey">缓存键值名称</param>
public static void Remove(string strKey)
{
if (HttpContext.Current.Cache[strKey] != null)
{
HttpContext.Current.Cache.Remove(strKey);
}
}
/// <summary>
/// 根据设置的正则表达式清除缓存对象;
/// 该方法使用正则匹配要删除的键值对象,如果键值命名统一规范,可批处理清除相关缓存数据O(∩_∩)O
/// </summary>
/// <param name="pattern">匹配键值的正则表达式</param>
public static void RemoveByRegexp(string pattern)
{
if (pattern != "")
{
IDictionaryEnumerator enu = HttpContext.Current.Cache.GetEnumerator();
while (enu.MoveNext())
{
string key = enu.Key.ToString();
if (Regex.IsMatch(key, pattern))
{
Remove(key);
}
}
}
}
/// <summary>
/// 清除所有缓存对象
/// </summary>
public static void Clear()
{
IDictionaryEnumerator enu = HttpContext.Current.Cache.GetEnumerator();
while (enu.MoveNext())
{
Remove(enu.Key.ToString());
}
}
public static CacheItemRemovedReason reason;
/// <summary>
/// 此方法在值失效之前调用,可以用于在失效之前更新数据库,或从数据库重新获取数据
/// </summary>
/// <param name="strKey"></param>
/// <param name="obj"></param>
/// <param name="reason"></param>
private static void onRemove(string strKey, object obj, CacheItemRemovedReason r)
{
reason = r;
}
}相关推荐
告别Godot默认编辑器:手把手教你用VSCode配置C#开发环境(附中文注释避坑指南)
本文详细介绍了如何将VSCode配置为Godot引擎的C#开发环境,提升游戏开发效率。从环境准备、扩展配置到解决中文编码问题,提供完整的避坑指南和高级调试技巧,帮助开发者充分利用VSCode的智能补全和调试功能,打造高效工作流。
浅说ASP.NET 缓存
例如,要开发一个股票交易的网页,每支股票价格是实时变动的,因此,整个页面必须是动态生成且不能缓存的,但其中有一小块用于放置过去一周的趋势图或成交量,它存储的是历史数据,这些数据早已是固定的事实,或者需要很长一段时间后才重新统计变动,将这部分缓存下来有很高的效益,可以不必为相同的内容做重复计算从而浪费时间,这时就可以使用控件缓存。使用应用程序缓存与使用应用程序状态类似,但是与应用程序状态不同的是,应用程序数据缓存中的数据是容易丢失的,即数据并不是在整个应用程序生命周期中都存储在内存中的。
【FLINK+Kerberos+kafka】在华为云上 bootstrap.server使用IP的GSS initiate failed 问题处理
目前互联网上所有的资料显示都是说没有正确设置KDC之类的,但本博主实际通过java代码低版本 如使用kafka-client 0.11.0 ,2.4.0等版本手动创建kafkaconfig 或者使用华为云的LoginUtils类 都能够正常链接,所以应该是高版本添加了相关配置,或者flink在subtask 创建kafkaAdminClient时 丢弃或使用了默认的一些配置行为,导致了客户端和kdc验证之间出现了principal 不一致导致验证失败。client.dns.lookup配置项作用。
.NETCore WebApi中的缓存机制
一、说明 作为WebApi接口,性能效率是必不可少的,每次的访问请求,数据库读取、业务逻辑处理都会或多或少的花费时间,特别是一些共用的公有数据,频繁访问且大量重复;针对这样的情况我们就可以考虑通过缓存放置到内存存储中,以空间换取时间的提升,可以提高应用程序的效率;关于缓存的方法有【Cache、Session、Cookie等】,还有功能比较强大的缓存方法,如:Redis等。 本文主要讲述MemoryCache、Session、Cookie这三种缓存方法。 二、缓存方法 2.0、建立一个独立的类..
【OpenCV】复杂场景下的高精度圆检测实战(附完整代码)
本文针对OpenCV霍夫圆检测在复杂场景下易失效的问题,提出了一套基于轮廓分析的高精度圆检测实战方案。通过图像预处理、轮廓发现及多轮几何筛选(面积、周长、椭圆拟合、多边形逼近),有效排除噪声和类圆干扰物,显著提升复杂场景下的检测鲁棒性,并附完整可调参的Python代码实现。
【TCGA-CRC】TCGA数据读取
本文介绍了如何从TCGA数据库中处理结肠癌(COAD)和直肠癌(READ)的RNA测序数据。首先,通过data.table::fread函数读取基因表达量文件,并检查基因ID和基因名称的一致性。接着,批量读取所有样本的TPM(Transcripts Per Million)数据,并将其合并为表达矩阵。随后,通过匹配样本ID和文件名,确保表达矩阵的列名与样本ID一致。最后,筛选出编码蛋白质的基因,并将处理后的数据保存为Rdata文件。整个过程涉及数据读取、合并、匹配和筛选,为后续的基因表达分析提供了基础。
ASP.NET 缓存(Cache)介绍
ASP.NET 缓存概述 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效...
雷赛控制卡全方位使用指南:从硬件连接到高级应用
雷赛控制卡以其接口简单、编程便捷、性价比高的特点,成为中小自动化设备的理想选择。使用时需注意:硬件连接需注重抗干扰设计(屏蔽线、接地);软件开发需合理配置运动参数(脉冲当量、加减速);调试阶段需充分利用 DMCStudio 工具验证性能。通过本文介绍的方法,可快速实现从硬件搭建到复杂运动控制的全流程开发,满足雕刻、切割、装配等多场景的自动化需求。
【ASP.NET Core 基础知识】--最佳实践和进阶主题--性能调优和缓存
本文介绍了在 ASP.NET Core 中进行性能调优和缓存实践的重要性,并提供了相关的技巧和最佳实践。性能调优方面,建议减少数据库查询、使用异步编程、优化 LINQ 查询、改善循环和集合操作、使用缓存等方法。缓存方面,阐述了缓存的概念、原理以及 ASP.NET Core 中的不同缓存技术,并介绍了缓存的实践方法和注意事项。此外,还介绍了性能监控工具的选择和性能指标的分析方法。通过综合利用这些技巧和工具,可以有效提升 ASP.NET Core 应用程序的性能和用户体验。
Hadoop与Kafka集群部署与优化实践指南
分布式系统是现代大数据处理的核心架构,其中Hadoop作为分布式存储与计算框架,Kafka作为分布式消息队列系统,共同构成了实时数据处理的基础设施。通过HDFS实现海量数据存储,结合YARN进行资源调度,而Kafka则保障了数据流的实时传输与高吞吐。这种技术组合在电商用户行为分析、物联网数据采集等场景中表现卓越。部署过程中需关注硬件资源配置、关键参数调优以及集群监控方案,例如通过调整HDFS块大小和Kafka partition数量来优化性能。合理运用Flume、Spark Streaming等工具可实现系
【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)
此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。
.Net环境下的缓存技术介绍
.Net环境下的缓存技术介绍摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页)1 概念1.1 缓存能解决的问题· 性能——将相应数据存储起来以避免数据的重复创建、处理和传输,可有效提高性能。比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度;· 稳
单片机应用案例:ESP32 搭配 BH1750 光强传感器和 Web 服务器
在该应用案例中,我们将使用 ESP32 开发板作为主控制器,BH1750 光强传感器用于采集环境光强度数据,并通过 Web 服务器展示采集到的数据。步骤一:购买材料步骤二:连接硬件步骤三:编写代码我们将使用 Arduino IDE 编写代码,以下是主要代码:// WiFi 设置const char* ssid = “你的 WiFi 名称”;const char* password = “密码”;// Web 服务器实例// BH1750 实例// 获取当前光强度数据。
【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用
分布式缓存是将缓存数据存储后供多个外部应用服务器中的服务共享使用。比起内存缓存仅支持本服务使用,分布式缓存扩展多服务器,多应用。故因此得名分布式缓存。本文将介绍ASP.NET Core中如何应用Redis作为分布式缓存服务。
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
如何在ASP.NET中使用缓存Caching
Caching缓存,就是将一些生成代价比较大的常用数据,保存起来重用。一般数据都保存在内存中,因为从内存中读取数据比从数据库等其他地方要快。 ASP.NET通过两种方式支持缓存: 1.通过Cache API存储任意数据; 2.通过页面输出缓存经常被访问的页面。一个例子:一个电子商务的站点, 它的目录一般一周更新一次。站点提供了一套用户界面让客户订购产品。当一个客户浏览目录时,系...
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
ASP.NET Core 性能优化:分布式缓存
在 ASP.NET Core 中,分布式缓存是一种将缓存数据存储在多个应用服务器共享的外部服务中的机制。它适用于分布式系统、集群部署或需要跨多个实例共享缓存数据的场景。分布式缓存在 ASP.NET Core 中是实现高性能、可扩展应用的关键组件。选择合适的缓存提供程序(如 Redis),结合合理的过期策略和序列化方式,可以显著提升系统性能。在设计和实现时,需特别注意缓存一致性、雪崩和穿透等问题,通过监控和诊断工具持续优化缓存策略。
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
ASP.NET Cache缓存的用法
本文导读:在.NET运用中经常用到缓存(Cache)对象。有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的,而HttpContext.Current.Cache是针对当前WEB上下文定义的。HttpRuntime下的除了WEB中可以使用外,非WEB程序也可以使用。 1、HttpRuntime.Cac...
Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类...
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载 Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例 ...
asp.net学习之SqlDataSource
asp.net学习之SqlDataSource 原文:asp.net学习之SqlDataSource 通过 SqlDataSource 控件,可以使用 Web 服务器控件访问位于关系数据库中的数据。其中可以包括 Microsoft SQL Server 和 Oracle 数据库以及 OLE DB 和 ODBC 数据源。您可以将 Sq...
总结的ASP.NET 常用性能优化方法
总结的ASP.NET26个常用性能优化方法 总结的ASP.NET26个常用性能优化方法 2008-9-4 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。 ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响
26个ASP.NET常用性能优化方法
26个ASP.NET常用性能优化方法 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。 ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次
Asp.net中的缓存操作
在ASP.NET实际项目开发中,我们可以采取基本的三种缓存技术:页面缓存、局部页面缓存和数据缓存 1.页面缓存是指缓存整个页面,且设置刷新间隔时间,刷新间隔时间一般以秒为单位(注意:缓存不能全部刷新,且刷新间隔不依赖外部事件); 2.局部页面缓存也叫部分页面缓存,指通过设定影响页面的参数,此时的缓存存储页面的多个版本,一般情况需要按照参数值为这些页面版本设置索引; 3.数据缓存也叫应用程序缓...
ASP.NET Core缓存
无论用那种过期时间策略,程序中都会存在缓存数据不一致的情况。部分系统(博客等)无所谓,部分系统不能忍受(比如金融)。可以通过其他机制获取数据源改变的消息,再通过代码调用IMemoryCache的Set方法更新缓存。
ASP.NET中缓存的详解
页面输出缓存属性设置:用@OutputCache指令设置页面输出缓存。@OutputCache指令在asp.net页或者页中包含的用户控件的头部声明。@OutputCache的常用属性如下:1、 CacheProfile 此属性是为了调用webconfig文件中节下 节点下一个可用项。如:webconfig中增加节点caching> outputCach
asp.net的缓存机制
缓存是把应用程序中的需要频繁、快速访问的数据保存在内存中的编程技术,通常用来提高网络的响应速度。在ASP.NET中使用Cache类来管理缓存。下面详述控件级数据缓存功能和页面级数据缓存功能的实现: (1)数据库缓存依赖数据库缓存依赖由SqlCacheDependency类管理;数据库缓存依赖的优点:1、提高数据呈现速度,每次获取数据后,系统根据用户设置的缓存时间,在有效期内,将
189



被折叠的 条评论
为什么被折叠?



