C# Cache缓存读取的设置方法
作者:每天进步多一点 时间:2022-11-18 05:33:53
先创建一个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条数据,
然后接下来走,返回缓存中的数据:
来源:https://www.cnblogs.com/lgx5/p/10785920.html
标签:c#,缓存读取,Cache
0
投稿
猜你喜欢
JetBrains IntelliJ IDEA 配置优化技巧
2022-06-19 08:31:38
java自定义异常打印内容详解
2022-03-10 23:58:32
Unity 静态变量跨场景操作
2023-10-16 14:32:41
java中File类的使用方法
2023-09-11 11:49:55
android实现点击按钮切换不同的fragment布局
2022-11-19 10:55:45
Android中手机录屏并转换GIF的两种方式
2021-12-03 13:00:52
android初学者必须掌握的Activity状态的四大知识点(必读)
2022-08-31 13:26:31
c# 常见文件路径Api的使用示例
2023-06-03 21:06:12
C#设置软件开机自动运行的方法(修改注册表)
2022-08-27 21:05:46
mybatis-plus排除非表中字段的操作
2022-04-22 03:48:41
Android动态自定义圆形进度条
2022-07-21 21:29:50
Android Studio使用教程(一):下载与安装及创建HelloWorld项目
2022-10-14 19:00:15
C语言实现贪吃蛇小游戏开发
2022-08-20 00:03:07
Java多线程Atomic包操作原子变量与原子类详解
2023-08-18 07:46:25
Springboot 内部服务调用方式
2023-08-24 00:32:20
Java使用Socket简单通讯详解
2023-11-03 02:54:43
java项目构建Gradle的使用教程
2023-06-07 19:17:41
Java JDK动态代理实现原理实例解析
2022-04-23 05:19:10
梳理总结Java static关键字的方法作用
2023-06-09 04:06:17
浅析C# 基础语法的使用
2023-05-16 13:24:50