先创建一个CacheHelper.cs类,代码如下:

using System;
using System.Web;
using System.Collections;
using System.Web.Caching; public class CacheHelper
{
/// <summary>
/// 获取数据缓存
/// </summary>
/// <param name="cacheKey">键</param>
public static object GetCache(string cacheKey)
{
var objCache = HttpRuntime.Cache.Get(cacheKey);
return objCache;
}
/// <summary>
/// 设置数据缓存
/// </summary>
public static void SetCache(string cacheKey, object objObject)
{
var objCache = HttpRuntime.Cache;
objCache.Insert(cacheKey, objObject);
}
/// <summary>
/// 设置数据缓存
/// </summary>
public static void SetCache(string cacheKey, object objObject, int timeout = 7200)
{
try
{
if (objObject == null) return;
var objCache = HttpRuntime.Cache;
//相对过期
//objCache.Insert(cacheKey, objObject, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);
//绝对过期时间
objCache.Insert(cacheKey, objObject, null, DateTime.Now.AddSeconds(timeout), TimeSpan.Zero, CacheItemPriority.High, null);
}
catch (Exception)
{
//throw;
}
}
/// <summary>
/// 移除指定数据缓存
/// </summary>
public static void RemoveAllCache(string cacheKey)
{
var cache = HttpRuntime.Cache;
cache.Remove(cacheKey);
}
/// <summary>
/// 移除全部缓存
/// </summary>
public static void RemoveAllCache()
{
var cache = HttpRuntime.Cache;
var cacheEnum = cache.GetEnumerator();
while (cacheEnum.MoveNext())
{
cache.Remove(cacheEnum.Key.ToString());
}
}
}

然后是调用:

        public IEnumerable<CompanyModel> FindCompanys()
{
var cache = CacheHelper.GetCache("commonData_Company");//先读取
if (cache == null)//如果没有该缓存
{
var queryCompany = _base.CompanyModel();//从数据库取出
var enumerable = queryCompany.ToList();
CacheHelper.SetCache("commonData_Company", enumerable);//添加缓存
return enumerable;
}
var result = (List<CompanyModel>)cache;//有就直接返回该缓存
return result;
}

 测试结果:

首次加载进来是为null,然后读取数据库,添加进缓存,当前返回前台的是从数据库中取出的数据。

刷新页面,发现缓存中已经有了读出的30条数据,

然后接下来走,返回缓存中的数据:

 

  

C# Cache缓存读取设置的更多相关文章

  1. 动态PHP电商网站伪静态的 Nginx反向代理Cache缓存终极设置

    转自: http://www.ttlsa.com/nginx/dynamic-php-nginx-cache/

  2. thinkphp3.1 缓存配置设置读取

    以下黄字是我用的代码: //设置缓存名为zgg,内容为zongguagua,有效时间60秒 cache('zgg',"zongguagua",60); //读取缓存 if(cach ...

  3. ASP.NET HttpRuntime.Cache缓存类使用总结

    1.高性能文件缓存key-value存储—Redis 2.高性能文件缓存key-value存储—Memcached 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出的博文地 ...

  4. js禁止从浏览器缓存读取消息

    $.ajaxSetup ({ cache: false //设置成false将不会从浏览器缓存读取信息 });

  5. thinkphp3.2开启静态缓存与缓存规则设置

    网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力.在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可. 静态缓存   首先设置 H ...

  6. ajax的cache缓存的使用方法

    ajax中cache缓存的使用: 问题描述: 在IE.360浏览器上提交表单后,保存后的内容不回显(依然显示空或者之前的内容). 原因: 回显内容是使用ajax的get方式的请求查询数据,ajax的c ...

  7. ASP.NET Core中使用Cache缓存

    ASP.NET Core中使用Cache缓存 缓存介绍: 通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性. 缓存对不经常更改的数据效果最佳. 缓存生成的数据副本的返回速度可以比从原始 ...

  8. Ajax跨域问题及解决方案 asp.net core 系列之允许跨越访问(Enable Cross-Origin Requests:CORS) c#中的Cache缓存技术 C#中的Cookie C#串口扫描枪的简单实现 c#Socket服务器与客户端的开发(2)

    Ajax跨域问题及解决方案   目录 复现Ajax跨域问题 Ajax跨域介绍 Ajax跨域解决方案 一. 在服务端添加响应头Access-Control-Allow-Origin 二. 使用JSONP ...

  9. 注释驱动的 Spring cache 缓存介绍

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

随机推荐

  1. hdu 2553 n皇后问题【DFS递归解法】

    <题目链接> 题目大意: Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45 ...

  2. pygm2安装问题

    pygm2是python的一个库,它提供了大部分数学处理的方式,今天在查看自己环境后,发现这个环境还没有安装上,于是,自己动手丰衣足食吧,我的系统为win10家庭版,首先执行的pip install ...

  3. Oracle 在字符串中输入单引号或特殊字符

    -- Start 字符串是用单引号括起来的,如果想在字符串中输入单引号该怎么办呢?有两种方法. 方法一:是用两个单引号代表一个单引号 SELECT 'I''m Shangbo' FROM DUAL; ...

  4. MySQL安装目录修改

  5. JS导出gridview到excel

    <html> <head> <script type="text/javascript"> var tableToExcel = (functi ...

  6. Spring Boot基础讲解

    Spring Boot Spring Boot 是由Pivotal团队提供的框架,它并不是一个全新的框架,而是将已有的 Spring 组件整合起来,设计目的是用来简化新Spring应用的初始搭建以及开 ...

  7. node加密

    var crypto = require('crypto'); //md5加密 exports.md5 = function (str) { var md5sum = crypto.createHas ...

  8. Android EditText设置为Number类型后获取数字

    s_video_seg1 = Integer.parseInt(video_seg1.getEditableText().toString().trim()); 此处要使用getEditableTex ...

  9. Little Pony and Alohomora Part 3 [HihoCoder 1075]

    描述 一日,崔克茜来到小马镇表演魔法. 其中有一个节目是开锁咒:舞台上有 n 个盒子,每个盒子中有一把钥匙,对于每个盒子而言有且仅有一把钥匙能打开它.初始时,崔克茜将会随机地选择 k 个盒子用魔法将它 ...

  10. 数据库出现'\xF0\x9F\x98\xB8'

    https://www.cnblogs.com/jinTaylor/p/4607505.html https://blog.csdn.net/qq_40074764/article/details/7 ...