Asp.net Core CacheHelper 通用缓存帮助类
2016-11-24 21:40
701 查看
using System; using Microsoft.Extensions.Caching.Memory; using System.Runtime; namespace UFX.Tools { public class CacheHelper { 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 } }
不要忘记先下载:Microsoft.Extensions.Caching.Memory;
相关文章推荐
- 重新过一遍ASP.NET 2.0(C#)(4) - Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)(转帖)
- ASP.Net中的缓存方案(不仅仅是Cache和Session)(我在CSDN上和别人的争论)
- ASP.NET 缓存(Cache)介绍
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- Asp.Net缓存Cache使用
- ASP.Net中的缓存方案(不仅仅是Cache和Session)(转)
- 转:在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和PetShop4 的缓存示例
- ASP.NET中缓存Cache的使用小节(学习之用)
- 详情ASP.NET状态管理缓存Cache应用(学习)
- ASP.NET中缓存(cache)的控制方法
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- 温故知新ASP.NET 2.0(C#)(4) - Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)
- ASP.NET中在线用户统计 application和cache实现缓存的差异 ASP.net 验证码(C#)
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和PetShop4 的缓存示例
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- 在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
- ASP.NET通用权限管理系统(FrameWork) 之用户在线列表 泛型缓存 [原创]
- Asp.Net缓存Cache使用一例
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和PetShop4 的缓存示例