整理下.net core cache的使用

Nuget安装   Microsoft.Extensions.Caching.Memory

using Microsoft.Extensions.Caching.Memory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace WebApplication1
{
public class CacheHelperNetCore
{
public static IMemoryCache _memoryCache = new MemoryCache(new MemoryCacheOptions()); /// <summary>
/// 缓存绝对过期时间
/// </summary>
///<param name="key">Cache键值</param>
///<param name="value">给Cache[key]赋的值</param>
///<param name="minute">minute分钟后绝对过期</param>
public static void CacheInsertAddMinutes(string key, object value, int minute)
{
if (value == null) return;
_memoryCache.Set(key, value, new MemoryCacheEntryOptions()
.SetAbsoluteExpiration(TimeSpan.FromMinutes(minute)));
} /// <summary>
/// 缓存相对过期,最后一次访问后minute分钟后过期
/// </summary>
///<param name="key">Cache键值</param>
///<param name="value">给Cache[key]赋的值</param>
///<param name="minute">滑动过期分钟</param>
public static void CacheInsertFromMinutes(string key, object value, int minute)
{
if (value == null) return;
_memoryCache.Set(key, value, new MemoryCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromMinutes(minute)));
} /// <summary>
///以key键值,把value赋给Cache[key].如果不主动清空,会一直保存在内存中.
/// </summary>
///<param name="key">Cache键值</param>
///<param name="value">给Cache[key]赋的值</param>
public static void CacheInsert(string key, object value)
{
_memoryCache.Set(key, value);
} /// <summary>
///清除Cache[key]的值
/// </summary>
///<param name="key"></param>
public static void CacheNull(string key)
{
_memoryCache.Remove(key);
} /// <summary>
///根据key值,返回Cache[key]的值
/// </summary>
///<param name="key"></param>
public static object CacheValue(string key)
{
return _memoryCache.Get(key);
} #region 缓存文档
//public IActionResult Index()
//{
// string cacheKey = "key";
// string result;
// if (!_memoryCache.TryGetValue(cacheKey, out result))
// {
// result = $"LineZero{DateTime.Now}";
// _memoryCache.Set(cacheKey, result);
// //设置相对过期时间2分钟
// _memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
// .SetSlidingExpiration(TimeSpan.FromMinutes(2)));
// //设置绝对过期时间2分钟
// _memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
// .SetAbsoluteExpiration(TimeSpan.FromMinutes(2)));
// //移除缓存
// _memoryCache.Remove(cacheKey);
// //缓存优先级 (程序压力大时,会根据优先级自动回收)
// _memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
// .SetPriority(CacheItemPriority.NeverRemove));
// //缓存回调 10秒过期会回调
// _memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
// .SetAbsoluteExpiration(TimeSpan.FromSeconds(10))
// .RegisterPostEvictionCallback((key, value, reason, substate) =>
// {
// Console.WriteLine($"键{key}值{value}改变,因为{reason}");
// }));
// //缓存回调 根据Token过期
// var cts = new CancellationTokenSource();
// _memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
// .AddExpirationToken(new CancellationChangeToken(cts.Token))
// .RegisterPostEvictionCallback((key, value, reason, substate) =>
// {
// Console.WriteLine($"键{key}值{value}改变,因为{reason}");
// }));
// cts.Cancel();
// }
// ViewBag.Cache = result;
// return View();
//}
#endregion
}
}

测试

        public IActionResult Index()
{
//写入
CacheHelperNetCore.CacheInsertAddMinutes("cache","",);
//读取
string value= CacheHelperNetCore.CacheValue("cache").ToString();
//清除
CacheHelperNetCore.CacheNull("cache");
string value1 = CacheHelperNetCore.CacheValue("cache").ToString();
return View();
}

.net core cache使用的更多相关文章

  1. java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to com.bkc.bpmp.core.cache.MemcachedManager

    java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to com.bkc.bpmp.core.cache.Memca ...

  2. 使用Django.core.cache操作Memcached导致性能不稳定的分析过程

    使用Django.core.cache操作Memcached导致性能不稳定的分析过程 最近测试一项目,用到了Nginx缓存服务,那可真是快啊!2Gb带宽都轻易耗尽. 不过Api接口无法简单使用Ngin ...

  3. ASP.NET CORE CACHE的使用(含MemoryCache,Redis)

    原文:ASP.NET CORE CACHE的使用(含MemoryCache,Redis) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接 ...

  4. .NET Core Cache [MemoryCache]

    参考资料:long0801的博客.MemoryCache微软官方文档 添加对Microsoft.Extensions.Caching.Memory命名空间的引用,它提供了.NET Core默认实现的M ...

  5. Redis+Django(Session,Cookie、Cache)的用户系统

    转自 http://www.cnblogs.com/BeginMan/p/3890761.html 一.Django authentication django authentication 提供了一 ...

  6. Django学习之十二:Cache 缓存组件

    目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...

  7. Django Cache缓存系统学习--数据库缓存

    Django是动态网站,用户每一次请求页面,服务器都会执行以下操作:数据库查询.渲染模版.执行业务逻辑,最后生成用户可查看的页面.当访问量比较大的时候,会消耗掉大量的资源,这时候就会考虑到缓存问题. ...

  8. Django’s cache framework

    小结: 1.缓存存储位置:数据库.文件系统.内存 2.通过缓存前缀实现跨服务器缓存 Django’s cache framework | Django documentation | Django h ...

  9. 使用Asp.Net Core MVC 开发项目实践[第五篇:缓存的使用]

    项目中我们常常会碰到一些数据,需要高频率用到但是又不会频繁变动的这类,我们就可以使用缓存把这些数据缓存起来(比如说本项目的导航数据,帖子频道数据). 我们项目中常用到有Asp.Net Core 本身提 ...

随机推荐

  1. 给乱序的链表排序 · Sort List, 链表重排reorder list LoLn...

    链表排序 · Sort List [抄题]: [思维问题]: [一句话思路]: [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: quick ...

  2. 对FPKM/RPKM以及TPM的理解

    对FPKM/RPKM以及TPM的理解 2018年07月03日 16:05:53 sixu_9days 阅读数:559 标签: FPKM/RPKMTPMRNA-Seq 更多 个人分类: RNA-Seq ...

  3. Codeforces 709C 模拟

    C. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 megabytes input:stand ...

  4. windows驱动

    DriveEntry() 启动 停止 接口函数 驱动程序名 驱动程序版本号 异常处理 是否运行 声明LPOReceive类型的函数 声明函数指针(外部传进来的回调函数) 存放配置字符串 本机IP 串口 ...

  5. jQuery 用$.param(json) 将 Json 转换为 Url queryString

    如: var params = { param1: 'bar', param2: 'foo' }; var queryString = $.param(params); // queryString ...

  6. 【文件下载】Java下载文件的几种方式

    [文件下载]Java下载文件的几种方式  摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...

  7. 检查Makefile中的tab

    转:http://stackoverflow.com/questions/16931770/makefile4-missing-separator-stop makefile has a very s ...

  8. echarts 使用配置模式(含事件)

    <!-- 引入echarts UMD 环境--> <script src="js/echarts/build/dist/echarts.js"></s ...

  9. 刷新物化视图sql

    在plsql中新建command window,执行如下语句: exec dbms_mview.refresh('V_CTRL_POINT_PLAN_DATE');   -- V_CTRL_POINT ...

  10. 2018.09.08 NOIP模拟eat(贪心)

    签到水题啊... 这题完全跟图论没有关系. 显然如果确定了哪些点会被选之后顺序已经不重要了.于是我们给点按权值排序贪心从大向小选. 我们要求的显然就是∑i(a[i]−(n−i))" role ...