C# 如何设置一个缓存类呢?


摘要:
下文讲述c#代码中设置缓存类的方法分享,如下所示;

缓存是我们程序必不可少的一部分,合理的使用缓存,可以加快程序的响应,节约数据的查询,
下文将通过具体的示例讲述缓存类的设置方法,如下所示:

 
using System;
using System.Web;
using System.Collections;
using System.Web.Caching;
  
public class CacheHelper
{
    /// 
    /// 获取缓存中的数据
    /// 
    /// 缓存键名
    public static object GetCacheInfo(string key)
    {
        var obj = HttpRuntime.Cache.Get(key);
        return obj;
    }
    /// 
    /// 生成对象缓存
    /// 
    public static void SetCache(string key, object obj)
    {
        var objCache = HttpRuntime.Cache;
        objCache.Insert(key, obj);
    }
    /// 
    /// 生成数据缓存-带过期时间
    /// 
    public static void SetCache(string key, object obj, int timeout = 7200)
    {
        try
        {
            if (obj == null) return;
            var objCache = HttpRuntime.Cache;
            //指定过期时间
            objCache.Insert(key,obj,null,DateTime.Now.AddSeconds(timeout), TimeSpan.Zero, CacheItemPriority.High, null);
        }
        catch (Exception)
        {
            //throw;
        }
    }
    /// 
    /// 删除缓存
    /// 
    public static void RemoveAllCache(string key)
    {
        var cache = HttpRuntime.Cache;
        cache.Remove(key);
    }
    /// 
    /// 删除系统中全部缓存
    /// 
    public static void RemoveAllCache()
    {
        var cache = HttpRuntime.Cache;
        var cacheEnum = cache.GetEnumerator();
        while (cacheEnum.MoveNext())
        {
            cache.Remove(cacheEnum.Key.ToString());
        }
    }
}


缓存类测试:

public IEnumerable finUsersInfo()
{
    var cache = CacheHelper.GetCacheInfo("usersInfo");//缓存中读取
    if (cache == null)//检测是否存在缓存
    {
        var queryUsers = _base.users();//从数据库取出
        var enumerable = queryUsers.ToList();
        CacheHelper.SetCache("usersInfo", enumerable);//设置缓存
        return enumerable; //返回获取的数据信息
    }
    var t = (List)cache;//存在缓存,则直接返回缓存信息
    return t;
}