• .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)
    });
    }
    }
    }

  • 相关阅读:
    OData – 权限管理
    Identity – Authorize Custom Authorization Policy Providers
    CSS – W3Schools 学习笔记 (1)
    OData – How It Work
    OData – Custom Serialize & Deserialize
    ASP.NET Core – System.Text.Json
    Identity – Authorize
    ASP.NET Core – Custom Input formatters For Partial Update and Handle Underposting
    as3 Matrix用法
    as3页游聊天框点击透明区域及普通文本支持寻路方案
  • 原文地址:https://www.cnblogs.com/zmaiwxl/p/8855950.html
Copyright © 2020-2023  润新知