LocalCache

 public static class LocalCacheHelper
    {
        private const int TimeOut = 5; //5分钟过期

        public static T GetCache<T>(string cacheKey)
        {
            var cache = GetCache(cacheKey);
            if (cache == null)
                return default(T);
            return (T)cache;
        }

        /// <summary>
        /// 获取当前应用程序指定CacheKey的Cache对象值
        /// </summary>
        /// <param name="cacheKey">索引键值</param>
        /// <returns>返回缓存对象</returns>
        private static object GetCache(string cacheKey)
        {
            var objCache = HttpRuntime.Cache;
            return objCache == null ? null : objCache[cacheKey];
        }

        /// <summary>
        /// 设置缓存数据
        /// </summary>
        /// <param name="cacheKey">索引键值</param>
        /// <param name="objObject">缓存对象</param>
        public static void SetCache(string cacheKey, object objObject)
        {
            try
            {
                var objCache = HttpRuntime.Cache;
                objCache.Insert(cacheKey, objObject, null, DateTime.Now.AddMinutes(TimeOut), TimeSpan.Zero);
            }
            catch (Exception ex)
            {
                string message = string.Format("种本地缓存出错,有效信息为:cacheKey={0},objObject={1}", cacheKey, objObject.ToJson());
                CenteralLogManager.WriteException("种本地缓存出错", new Exception(message, ex));
            }
        }

        /// <summary>
        /// 设置缓存数据
        /// </summary>
        /// <param name="cacheKey">索引键值</param>
        /// <param name="objObject">缓存对象</param>
        /// <param name="minutes">缓存时间,单位:分钟</param>
        public static void SetCache(string cacheKey, object objObject, int minutes)
        {
            try
            {
                var objCache = HttpRuntime.Cache;
                objCache.Insert(cacheKey, objObject, null, DateTime.Now.AddMinutes(minutes), TimeSpan.Zero);
            }
            catch (Exception ex)
            {
                string message = string.Format("种本地缓存出错,有效信息为:cacheKey={0},objObject={1}", cacheKey, objObject.ToJson());
                CenteralLogManager.WriteException("种本地缓存出错", new Exception(message, ex));
            }
        }
    }
时间: 2024-11-09 00:07:16

LocalCache的相关文章

手写一个自己的LocalCache - 基于LinkedHashMap实现LRU

功能目标 实现一个全局范围的LocalCache,各个业务点使用自己的Namespace对LocalCache进行逻辑分区,所以在LocalCache中进行读写采用的key为(namespace+(分隔符)+数据key),如存在以下的一对keyValue :  NameToAge,Troy -> 23 .要求LocalCache线程安全,且LocalCache中总keyValue数量可控,提供清空,调整大小,dump到本地文件等一系列操作. 用LinkedHashMap实现LRU Map Lin

关于java中的本地缓存-总结概述

java中的本地缓存,工作后陆续用到,一直想写,一直无从下手,最近又涉及到这方面的问题了,梳理了一下.自己构造单例.guava.ehcache基本上涵盖了目前的大多数行为了.   为什么要有本地缓存? 在 系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减 少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略. 为什么是本地缓存,而

缓存框架Guava Cache部分源码分析

在本地缓存中,最常用的就是OSCache和谷歌的Guava Cache.其中OSCache在07年就停止维护了,但它仍然被广泛的使用.谷歌的Guava Cache也是一个非常优秀的本地缓存,使用起来非常灵活,功能也十分强大,可以说是当前本地缓存中最优秀的缓存框架之一.之前我们分析了OSCache的部分源码,本篇就通过Guava Cache的部分源码,来分析一下Guava Cache的实现原理. 在分析之前,先弄清数据结构的使用.之前的文章提到,OSCache使用了一个扩展的HashTable,作

UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)]已经谈到了使用FileOpenPicker进行文件选择,以及CameraCaptureUI进行拍照. 对于文件选择一般进行如下设置就能实现: // 选择多个文件 FileOpenPicker openPicker = new FileOpenPicker(); openPic

WP8.1学习系列(第二十一章)——本地应用数据

了解如何存储和检索本地应用数据存储中的设置和文件. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 Windows 运行时应用的路线图 获取应用的设置和文件容器 使用 ApplicationData.LocalSettings 属性可以获取 ApplicationDataContainer 对象中的设置.使用ApplicationData.LocalFolder 属性可以获取 StorageFold

yarn默认配置

name value description yarn.ipc.client.factory.class   Factory to create client IPC classes. yarn.ipc.serializer.type protocolbuffers Type of serialization to use. yarn.ipc.server.factory.class   Factory to create server IPC classes. yarn.ipc.excepti

mybatis 与 缓存

首先从配置文件说起,有个cacheEnabled的配置项,当设置为true时(默认就是true),Session就会用一个CachingExecutor来包装我们的Executor实例: public Executor newExecutor(Transaction transaction, ExecutorType executorType) { executorType = executorType == null ? defaultExecutorType : executorType;

Redis设计思路学习与总结

版权声明:本文由宋增宽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/222 来源:腾云阁 https://www.qcloud.com/community 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术,并思考技术演变,专注于高并发业务架构的设计与性能优化. 下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型.数据结构和内存管理.持久化和多机

org.jvnet.hudson.reactor.ReactorException: com.google.common.util.concurrent.UncheckedExecutionException: com.thoughtworks.xstream.mapper.CannotResolveClassException: maven2-moduleset

org.jvnet.hudson.reactor.ReactorException: com.google.common.util.concurrent.UncheckedExecutionException: com.thoughtworks.xstream.mapper.CannotResolveClassException: maven2-moduleset at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:246) at h