WinForm/C# C# 缓存机制使用

fengxiaoyang · 2020年08月06日 · 165 次阅读

using System.Runtime.Caching

System.Runtime.Caching 命名空间是.NET 4.0 新增的,将以前的.NET 版本中的 System.Web.Caching 单独提取出来,独立使用。

核心代码

private void CacheTest()
{
    ObjectCache cache = MemoryCache.Default;//声明缓存类

    string myCache = cache["mycache"] as string;//获取缓存[] 在我们的中括号中的是这个缓存的名字

    if (myCache == null)
    {
        CacheItemPolicy policy = new CacheItemPolicy();//这个对象可以设置这个缓存的过期时间,和关联对象等等等。

        policy.AbsoluteExpiration = DateTime.Now.AddSeconds(10);//设置过期时间是当前时间+10秒,那么10秒后,这个缓存的项就会被移除

        myCache ="123";//需要我们缓存的值,这里可以从数据库取数了

        cache.Set("mycache", myCache, policy);//插入缓存
    }

    var m = myCache;
}

MemoryCache 的 help 工具类

using System;
using System.Runtime.Caching;

namespace Cache.Tool
{
    public class CacheHelper
    {
        public ObjectCache cache = MemoryCache.Default;//声明缓存类

        /// <summary>
        /// 设置缓存,没有其他重载方法,第一个参数name是我们的缓存的名字,第二个参数是我们需要缓存的对象,第三个是我们的过期时间默认7200秒
        /// </summary>
        /// <param name="name">缓存的名字</param>
        /// <param name="Ovlaue">需要缓存的值</param>
        /// <param name="seconds">过期时间</param>
        public void Set(string name, object Ovlaue, int seconds=7200)
        {
            CacheItemPolicy policy = new CacheItemPolicy();

            policy.AbsoluteExpiration = DateTime.Now.AddSeconds(seconds);

            cache.Set(name, Ovlaue, policy);
        }

        /// <summary>
        /// 获取缓存,传入缓存名字即可
        /// </summary>
        /// <param name="name">缓存的名字</param>
        /// <returns></returns>
        public object Get(string name)
        {
            return cache[name];
        }
    }
} 
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册