zoukankan      html  css  js  c++  java
  • .netcore 使用redis

    我们需要添加一个Redis包:Microsoft.Extensions.Caching.Redis,这是官方的

    1.在appsettings.json添加配置,如下图:

    说明:

    CacheProvider: ConnectionString   --- Redis连接       

              InstanceName     ---Redis实例名称   

     2.在startup添加redis服务,如下图

    3.缓存接口 ICacheService

    public interface ICacheService
    {
    /// <summary>
    /// 获取缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    /// <returns></returns>
    string Get(string key);
    /// <summary>
    ///
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    string GetString(string key);
    /// <summary>
    ///
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    void AddString(string key, string value);
    /// <summary>
    /// 添加缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    /// <param name="value">缓存值</param>
    /// <param name="ExpirationTime">绝对过期时间(分钟)</param>
    void Add(string key, string value, int ExpirationTime = 20);
    /// <summary>
    /// 移除缓存
    /// </summary>
    /// <param name="key"></param>
    void Remove(string key);
    /// <summary>
    /// 更新缓存
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="ExpirationTime"></param>
    void Replace(string key, string value, int ExpirationTime = 20);

    4.实现接口 ICacheService

    public class RedisCacheService:ICacheService
    {
    private RedisCache _redisCache = null;
    public RedisCacheService(RedisCacheOptions options)
    {
    _redisCache = new RedisCache(options);
    }
    /// <summary>
    /// 获取缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    /// <returns></returns>
    public string Get(string key)
    {
    try
    {
    if (!string.IsNullOrEmpty(key))
    {
    return Encoding.UTF8.GetString(_redisCache.Get(key));
    }
    else
    {
    return string.Empty;
    }
    }
    catch
    {
    return null;
    }
    }
    /// <summary>
    /// 添加缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    /// <param name="value">缓存值</param>
    /// <param name="ExpirationTime">绝对过期时间(分钟)</param>
    public void Add(string key,string value,int ExpirationTime=20)
    {
    if (!string.IsNullOrEmpty(key))
    {
    _redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
    {
    AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
    });
    }
    }

    public void AddString(string key, string value)
    {
    _redisCache.SetString(key,value);
    }

    public string GetString(string key)

    {
    return _redisCache.GetString(key);
    }

    /// <summary>
    /// 移除缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    public void Remove(string key)
    {
    if (!string.IsNullOrEmpty(key))
    {
    _redisCache.Remove(key);
    }
    }
    /// <summary>
    /// 更新缓存
    /// </summary>
    /// <param name="key">缓存key</param>
    /// <param name="value">缓存值</param>
    /// <param name="ExpirationTime"></param>
    public void Replace(string key, string value, int ExpirationTime = 20)
    {
    if (!string.IsNullOrEmpty(key))
    {
    _redisCache.Remove(key);
    _redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
    {
    AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
    });
    }
    }
    }

  • 相关阅读:
    poj 1222 EXTENDED LIGHTS OUT (高斯消元 )
    poj 2187 Beauty Contest (凸包: 最远点对,最长直径 , 旋转卡壳法)
    poj 1408 Fishnet (几何:线段相交 + 叉积 求面积 )
    poj 1228 Grandpa's Estate ( 凸包 )
    高斯消元 模版
    poj 1830 开关问题 (高斯消元 )
    poj 1113 Wall (凸包:周长)
    旋转卡壳算法
    poj 1681 Painter's Problem (高斯消元 )
    字符串相关处理
  • 原文地址:https://www.cnblogs.com/zmaiwxl/p/8855950.html
Copyright © 2011-2022 走看看