广告
返回顶部
首页 > 资讯 > 精选 >C#中缓存System.Web.Caching怎么用
  • 743
分享到

C#中缓存System.Web.Caching怎么用

2023-06-30 11:06:08 743人浏览 八月长安
摘要

今天小编给大家分享一下C#中缓存System.WEB.Caching怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sy

今天小编给大家分享一下C#缓存System.WEB.Caching怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

System.Web.Caching.Cache Insert和Add方法的区别

Add()

object Add(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);

Insert()

void Insert(string key, object value); //永不过期void Insert(string key, object value, CacheDependency dependencies);  //依赖void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration);//绝对时间过期:void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemUpdateCallback onUpdateCallback);  //依赖+回调void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);  //依赖+优先级+回调

比较、区别

a). Insert方法支持5种重载,使用灵活,而Add方法必须提供7个参数;

b). Add方法可以返回缓存项的数据对象,Insert 返回Void;

c). 添加重复缓存情况下(Key已存在),Insert会替换该项,而Add方法则不执行任何操作,并返回原来保存的object对象(Update 2014-03-18)。

过期策略

  • a). 永不过期

Insert(string key, object value);

  • b). 绝对时间过期

DateTime.Now.AddSeconds(10)表示缓存在10秒后过期,TimeSpan.Zero表示不使用平滑过期策略。

例:Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);

  • c). 变化时间过期(平滑过期)

DateTime.MaxValue表示不使用绝对时间过期策略,TimeSpan.FromSeconds(10)表示缓存连续10秒没有访问就过期。

例:Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));

使用Remove清空所有Cache

概述清空缓存主要通过Remove()方法,但是只能通过传入一个Key,清空一个。GetEnumerator()方法用于获取所有缓存项。MoveNext()用于将位置移动到下一个缓存项。如果想清空所有缓存,由于Cache类没有提供RemoveAll()方法,所以可以通过以下方式实现:

        public void removeAllCache()        {            IDictionaryEnumerator DicCache = HttpRuntime.Cache.GetEnumerator();            int count = HttpRuntime.Cache.Count;            for (int i = 0; i < count; i++)            {                DicCache.MoveNext();                HttpRuntime.Cache.Remove(DicCache.Entry.Key.ToString());            }        }

存放缓存

 #region 存放对应缓存            Cache cache = HttpRuntime.Cache;            //文件缓存依赖            cache.Insert("CC", "依赖项测试", new CacheDependency(@"D:\123.txt"));            //这时候在about.aspx页面添加一行代码,当更改一下D:123.txt时,cache["cc"]会立即被清空            //30秒后就到期,立即移除,没商量            cache.Insert("DD", "绝对过期测试", null, DateTime.Now.AddSeconds(30), System.Web.Caching.Cache.NoSlidingExpiration);            //弹性过期时间,当缓存没使用10秒就过期            cache.Insert("EE", "滑动过期测试", null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10));            //文件权重级别            cache.Add("FF", "缓存重要级别", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null);            //在服务器释放系统内存时,具有该优先级级别的缓存项最有可能被从缓存删除。            //Low = 1,-------------在服务器释放系统内存时,具有该优先级级别的缓存项比分配了 System.Web.Caching.CacheItemPriority.NORMal优先级的项更有可能被从缓存删除。            //BelowNormal = 2,---------------在服务器释放系统内存时,具有该优先级级别的缓存项很有可能被从缓存删除,其被删除的可能性仅次于具有 System.Web.Caching.CacheItemPriority.Low            //Normal = 3,-------------------缓存项优先级的默认值为 System.Web.Caching.CacheItemPriority.Normal。            //Default = 3,----------------在服务器释放系统内存时,具有该优先级级别的缓存项被删除的可能性比分配了 System.Web.Caching.CacheItemPriority.Normal优先级的项要小。            //AboveNormal = 4,-------------在服务器释放系统内存时,具有该优先级级别的缓存项最不可能被从缓存删除。            //High = 5,-------------------在服务器释放系统内存时,具有该优先级级别的缓存项将不会被自动从缓存删除。但是,具有该优先级级别的项会根据项的绝对到期时间或可调整到期时间与其他项一起被移除            // NotRemovable = 6,            //文件权重级别+Callback            cache.Add("GG", "缓冲移除通知", null, DateTime.Now.AddSeconds(10), Cache.NoSlidingExpiration, CacheItemPriority.Low, Show);            #endregion        //回调        public void Show(string key, object value, CacheItemRemovedReason reason)        {            Cache cache = HttpRuntime.Cache;            Cache.Insert("GG", "缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!");        }

获取缓存

            #region 获取对应缓存            //直接打开本页面,输出缓存依赖项测试            //当更改D:\123.txt之后,在刷新,输出空,表明该Cache是依赖于D:\123.txt的            Response.Write(HttpContext.Current.Cache["CC"]);            //持续刷新30后,不会再输出  绝对过期测试            Response.Write(HttpContext.Current.Cache["DD"]);            //如果一直不停地刷新,都会继续输出,但是当超过10秒后再刷新,不会再输出   滑动缓存测试            Response.Write(HttpContext.Current.Cache["EE"]);            //文件权重级别            Response.Write(HttpRuntime.Cache["FF"]);            //测试回调函数            Response.Write(HttpRuntime.Cache["GG"]);            #endregion

以上就是“C#中缓存System.Web.Caching怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: C#中缓存System.Web.Caching怎么用

本文链接: https://www.lsjlt.com/news/328167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中缓存System.Web.Caching怎么用
    今天小编给大家分享一下C#中缓存System.Web.Caching怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sy...
    99+
    2023-06-30
  • C#中缓存System.Web.Caching用法总结
    System.Web.Caching.Cache Insert和Add方法的区别 Add() object Add(string key, object value, CacheDe...
    99+
    2022-11-13
  • 怎么清理C盘Adobe缓存
    小编给大家分享一下怎么清理C盘Adobe缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!清除方法:首先打开“此电脑”,点击页面顶部的“查看”按钮,勾选“隐藏的项...
    99+
    2023-06-15
  • C#中怎么使用Couchbase实现分布式缓存
    C#中怎么使用Couchbase实现分布式缓存,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和...
    99+
    2023-06-17
  • C#怎么使用CallContext缓存线程数据
    本篇内容主要讲解“C#怎么使用CallContext缓存线程数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么使用CallContext缓存线程数据”吧!一、CallContext 概述...
    99+
    2023-06-30
  • AngularJS中缓存怎么用
    这篇文章主要介绍了AngularJS中缓存怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。缓存篇一个缓存就是一个组件,它可以透明地储存数...
    99+
    2022-10-19
  • C++中怎么利用LeetCode使用页面置换缓存器
    C++中怎么利用LeetCode使用页面置换缓存器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。[LeetCode] 146. LRU Cache 最近最少使用页面置换缓存...
    99+
    2023-06-20
  • 怎么清理c盘缓存垃圾
    这篇文章给大家分享的是有关怎么清理c盘缓存垃圾的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。清理c盘缓存垃圾的方法:1、双击打开计算机,打开本地磁盘C属性面板;2、找到常规选项,点击【磁盘清理】选项;3、等待磁盘...
    99+
    2023-06-14
  • C#中如何使用缓存流
    这期内容当中小编将会给大家带来有关C#中如何使用缓存流,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#缓存流的使用实例:用缓存流复制文件,C#文件处理操作必须先导入命名空间:using Sys...
    99+
    2023-06-17
  • 详解C#中普通缓存的使用
    目录一、首先,新建控制台程序(.NET Core)、以下为项目结构二、编写缓存类三、编写有缓存和没有缓存方法四、控制台上端调用总结一下哈:一、首先,新建控制台程序(.NET Core...
    99+
    2022-11-12
  • Redis中怎么缓存MySQL
    本篇文章为大家展示了Redis中怎么缓存MySQL,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mys...
    99+
    2022-10-18
  • 怎么配置MySQL缓存提高缓存命中率
    这篇文章主要讲解了“怎么配置MySQL缓存提高缓存命中率”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么配置MySQL缓存提高缓存命中率”吧!  一、什么...
    99+
    2022-10-18
  • python中自带缓存lru_cache怎么用
    这篇文章给大家分享的是有关python中自带缓存lru_cache怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. lru_cache的使用1.1 参数详解以下是lru_cache方法的实现,我们看出可供...
    99+
    2023-06-20
  • Golang中的缓存库freecache怎么用
    这篇文章主要讲解了“Golang中的缓存库freecache怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang中的缓存库freecache怎么用”吧!go开发缓存场景一般使用m...
    99+
    2023-06-29
  • thinkphp缓存怎么使用
    本篇内容介绍了“thinkphp缓存怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!thinkphp缓存的用法:1、使用模型查询,其代...
    99+
    2023-07-04
  • php缓存怎么使用
    本篇内容介绍了“php缓存怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,...
    99+
    2023-06-22
  • spring缓存cache怎么用
    这篇文章将为大家详细讲解有关spring缓存cache怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。spring缓存cache的使用在spring配置文件中添加schema和spring对缓存注解的...
    99+
    2023-06-25
  • Redis中的缓存穿透、缓存雪崩、缓存击穿和缓存一致性怎么理解
    这篇文章主要介绍“Redis中的缓存穿透、缓存雪崩、缓存击穿和缓存一致性怎么理解”,在日常操作中,相信很多人在Redis中的缓存穿透、缓存雪崩、缓存击穿和缓存一致性怎么理解问题上存在疑惑,小编查阅了各式资料...
    99+
    2022-10-19
  • Python怎么使用LRU缓存策略进行缓存
    本文小编为大家详细介绍“Python怎么使用LRU缓存策略进行缓存”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么使用LRU缓存策略进行缓存”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Pyt...
    99+
    2023-07-06
  • C# .NET 中的缓存实现详情
    目录一、缓存的基本概念二、缓存三、进程内缓存早期做法四、更好的解决方案1、 Microsoft.Extensions.Caching.Memory 2、具有驱逐策略的 IM...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作