zoukankan      html  css  js  c++  java
  • CacheManager Net Core Redis 缓存

    using CacheManager.Core;
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace Service.Cache
    {
    public class QKCacheManager
    {
    public static QKCacheFactory factory = new QKCacheFactory();
    /// <summary>
    /// 读取缓存
    /// </summary>
    /// <param name="cacheKey"></param>
    /// <returns></returns>
    public static T GetCache<T>(CacheKeyEnum cacheKey)
    {
    var cacheInfo = factory.Create(cacheKey);
    var result = cacheInfo.Get();
    if (result != null)
    {
    return (T)Convert.ChangeType(result, typeof(T));
    }
    else
    {
    return default(T);
    }
    }
    
    /// <summary>
    /// 默认缓存时间
    /// </summary>
    static int ExpireSeconds = 30;
    /// <summary>
    /// 新增
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="key"></param>
    /// <param name="obj"></param>
    /// <param name="expire"></param>
    /// <returns></returns>
    public static bool Add<T>(ICacheManager<T> cache, string key, T obj)
    {
    return Add(cache, key, obj, ExpireSeconds);
    }
    /// <summary>
    /// 放入缓存,如果存在则替换,否则新建
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="cache"></param>
    /// <param name="key">缓存Key</param>
    /// <param name="obj">缓存对象</param>
    /// <param name="expire">缓存时限(秒)</param>
    /// <returns>True:放入缓存成功,False:不做缓存或放入缓存失败</returns>
    public static bool Add<T>(ICacheManager<T> cache, string key, T obj, int expire = 0)
    {
    bool result = false;
    expire = expire > 0 ? expire : ExpireSeconds;
    if (obj != null)
    {
    cache.Put(new CacheItem<T>(key, obj,
    ExpirationMode.Absolute,
    TimeSpan.FromSeconds(expire)));
    result = true;
    }
    return result;
    }
    /// <summary>
    /// 移除指定缓存
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="cache"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static bool Remove<T>(ICacheManager<T> cache, string key)
    {
    bool result = false;
    if (string.IsNullOrEmpty(key))
    {
    cache.Remove(key);
    result = true;
    }
    return result;
    }
    /// <summary>
    /// 获取指定缓存
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="cache"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static T Get<T>(ICacheManager<T> cache, string key)
    {
    return cache.Get<T>(key);
    }
    
    /// <summary>
    /// 生成缓存key
    /// </summary>
    /// <param name="dtoName">当前缓存的dto</param>
    /// <returns></returns>
    public static string GetCacheKey(string dtoName)
    {
    return GetCacheKey(dtoName, 0);
    }
    /// <summary>
    /// 生成缓存key
    /// </summary>
    /// <param name="dtoName">当前缓存的dto</param>
    /// <param name="pageIndex">缓存当前页索引</param>
    /// <returns></returns>
    public static string GetCacheKey(string dtoName, int pageIndex)
    {
    return GetCacheKey("DataCenter", dtoName, pageIndex);
    }
    /// <summary>
    /// 生成缓存key
    /// </summary>
    /// <param name="regionName">区域名称</param>
    /// <param name="dtoName">当前缓存的dto</param>
    /// <returns></returns>
    public static string GetCacheKey(string regionName, string dtoName)
    {
    return GetCacheKey(regionName, dtoName, 0);
    }
    /// <summary>
    /// 生成缓存key
    /// </summary>
    /// <param name="regionName">区域名称</param>
    /// <param name="dtoName">当前缓存的dto</param>
    /// <param name="pageIndex">缓存当前页索引</param>
    /// <returns></returns>
    public static string GetCacheKey(string regionName, string dtoName, int pageIndex)
    {
    return regionName + "_" + dtoName + "_" + pageIndex.ToString();
    }
    }
    }
    

      

  • 相关阅读:
    setoptsocket函数
    C++右值引用
    const char* char const* char*const
    select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
    gitee搭建应用
    C++ 实现基本运算+-*/
    C++学习笔记(一)mutable function
    创造型设计模式-----抽象工厂模式
    openPhase gcc迁移
    SQLPLUS 远程连接数据库
  • 原文地址:https://www.cnblogs.com/gylhaut/p/9118120.html
Copyright © 2011-2022 走看看