CacheHelper对缓存的控制 减轻服务器的压力

通常我们针对页面以及相关数据进行相应的缓存(分为客户端和服务端的缓存),以下代码为对一般操作 进行相应的缓存(服务端),用以减少对数据库的访问次数,减少服务器的压力。

(一)CacheHelper 类

CacheHelper类主要是依赖于系统的System.Web.Caching.HostingEnvironment.Cache,具体代码如 下:

public static class CacheHelper
    {
        private static Cache _cache;

        public static double SaveTime
        {
            get;
            set;
        }

        static CacheHelper()
        {
            _cache = HostingEnvironment.Cache;
            SaveTime = 15.0;
        }

        public static object Get(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                return null;
            }

            return _cache.Get(key);
        }

        public static T Get<T>(string key)
        {
            object obj = Get(key);
            return obj==null?default(T):(T)obj;
        }

        public static void Insert(string key, object value, CacheDependency dependency, CacheItemPriority priority, CacheItemRemovedCallback callback)
        {
            _cache.Insert(key, value, dependency, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(SaveTime), priority, callback);
        }

        public static void Insert(string key, object value, CacheDependency dependency, CacheItemRemovedCallback callback)
        {
            Insert(key, value, dependency, CacheItemPriority.Default, callback);
        }

        public static void Insert(string key, object value, CacheDependency dependency)
        {
            Insert(key, value, dependency, CacheItemPriority.Default, null);
        }

        public static void Insert(string key, object value)
        {
            Insert(key, value, null, CacheItemPriority.Default, null);
        }

        public static void Remove(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            _cache.Remove(key);
        }

        public static IList<string> GetKeys()
        {
            List<string> keys = new List<string>();
            IDictionaryEnumerator enumerator = _cache.GetEnumerator();
            while (enumerator.MoveNext())
            {
                keys.Add(enumerator.Key.ToString());
            }

            return keys.AsReadOnly();
        }

        public static void RemoveAll()
        {
            IList<string> keys = GetKeys();
            foreach (string key in keys)
            {
                _cache.Remove(key);
            }
        }
    }
}

在原有基础上增加了如下3个方法:

(1)public static T Get<T>(string key)

(2)public static IList<string> GetKeys()

(3)public static void RemoveAll ()
 

这样我们能够方便的以静态方法来对Cache进行相应的操作。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索insert
, string
, static
, dependencies
, key
, public
, list removeall
Dependency
cache缓存服务器、cachehelper、c cachehelper、java cachehelper、c cache helper,以便于您获取更多的相关知识。

时间: 2024-10-29 05:17:38

CacheHelper对缓存的控制 减轻服务器的压力的相关文章

Laravel使用Caching缓存数据减轻数据库查询压力的方法_php实例

本文实例讲述了Laravel使用Caching缓存数据减轻数据库查询压力的方法.分享给大家供大家参考,具体如下: 昨天想把自己博客的首页做一下缓存,达到类似于生成静态页缓存的效果,在群里问了大家怎么做缓存,都挺忙的没多少回复,我就自己去看了看文档,发现了Caching这个部分,其实之前也有印象,但是没具体接触过,顾名思义,就是缓存了,那肯定和我的需求有点联系,我就认真看了看,发现的确是太强大了,经过很简单的几个步骤,我就改装好了首页,用firebug测试了一下,提高了几十毫秒解析时间,当然了有人

java-Java如何实现控制其他服务器执行ftp功能

问题描述 Java如何实现控制其他服务器执行ftp功能 如何通过java控制其他服务器实现ftp上传下载功能并测出两者间的网速? 比如说,现在有A,B,C三个地址,还有自己这边有一台控制机,要控制A服务器(在有权限的情况下)对B服务器进行ftp上传和下载文件,并测出A,B间的网络速度 解决方案 调用psexec这个命令(这个命令google下可以下载)

Skyfire宣布将进行分批销售以减轻服务器压力

面向iPhone.iPod Touch推出的支持Flash的iOS浏览器Skyfire很快也将登陆iPad平台.该公司周二在微博上宣布:"我们正开发Skyfire的iPad版.如果你主要使用iPad,不妨继续等待.敬请关注我们的iPad动态."据悉,Skyfire浏览器此前入驻其他移动平台已多时,工作时它充当用户和来源网页之间的代理,在传输过程中将内容转换格式后输出至用户手机.该技术使得Skyfire能够播放以流的形式在iPhone等不支持Flash的设备上播放Flash内容.Skyf

《DNS与BIND(第5版)》——第7章 BIND的维护7.1 控制名称服务器

第7章 BIND的维护 爱丽丝继续喘着气说:"可是,在我住的地方, 只要快快地跑一会儿,你总能跑到另外一个地方的." "那可真是个慢吞吞的地方!" 王后说:"你瞧,在我们这儿,得拼命地跑,才能保持在原地. 要是想到别的地方,得再快一倍才行!" 本章将讨论关于如何维护名称服务器的相关内容.包括如何控制名称服务器,如何修改区域数据文件,以及如何保持root提示文件是最新的.还将列出常见syslog错误信息并解释BIND的统计数据. 本章不会涉及如何排

Linux中如何对服务器进行压力测试

http_load是基于Linux平台的一种性能测工具.它是以并行复用的方式运行,仅适用于Web页面的性能测试,不适用于访问数据库,而且测试结果分析是有限的,平台依赖Linux .http_load可以简单地通过txt文本文件中记录的参数来对HTTP服务器进行压力测试,那是如何对服务器进行压力测试的呢?下面我们就来介绍 Linux中如何安装使用http_load对服务器进行压力测试的教程. 具体方法步骤如下: 1.下载 官方网站:http://acme.com/software/http_loa

Web服务器性能压力测试工具

Web服务器性能压力测试工具 http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死. 还可以测试HTTPS类的网站请求. 下载地址:http_load-12mar2006.tar.gz 安装很简单 tar zxvf http_load-12mar2006.tar.gz cd http_load-12mar2006 make && m

取得服务器端时间 以及对服务器的压力问题

问题描述 这里有我找到的一段代码是想获取服务器时间并且可以动态显示成每秒都在走动的但是不知道是否会对服务器增加压力想请教一下各位希望大家帮个忙谢谢<spanid=serverTime>正在同步服务器时间...</span><script>vardayNames=newArray("星期日","星期一","星期二","星期三","星期四","星期五",&

聊天记录的保存(怎样建表 以后读取数据时对服务器的压力小)

问题描述 聊天记录的保存(怎样建表以后读取数据时对服务器的压力小)正在做一个类似扣扣的聊天的软件但是建聊天表的遇到问题BOSS要求不能给服务器太大的压力 解决方案 解决方案二:.....那只能这么干了,键好缩引,只能是单字段如聊天号码缩引然后.聊天时,先把聊天的数据放到一个Cache中,当Cache达到一定数量时,再把这个Cache里的记录一次性Insert到表中,同时清空Cache.后继续收集聊天记录.减少对库的读写.解决方案三:.....那只能这么干了,键好缩引,只能是单字段如聊天号码缩引然

javascript-关于pushlet推送服务器的压力测试

问题描述 关于pushlet推送服务器的压力测试 pushlet是基于comet开发的推送服务器,我现在要做一下该服务器的压力测试,就比如2000个用户同时连接推送服务器,查看其性能,求指点! 说明:客户端是通过ajax与服务器保持长连接的,通过XMLHttpRequest发起请求,请求响应后立马再发起一个ajax请求,从而保持长连接.