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

  • 相关阅读:
    Android笔记之调用系统相机拍照
    Android笔记之RoundedImageView
    Java笔记之public、protected、default和private
    Android笔记之ExpandableListView(悬浮吸顶Demo)
    Android笔记之Fragment中创建ViewModel的正确方式
    Android代号、版本及API级别之间的对应关系
    【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)
    【Ansible】记一次技术博客害死人的经历——ansible模板变量注入探究
    【linux杂谈】遇到REMOTE HOST IDENTIFICATION HAS CHANGED怎么办?
    【linux杂谈】在SSH连接中,openssh如何解决'Connection refused'错误?
  • 原文地址:https://www.cnblogs.com/zmaiwxl/p/8855950.html
Copyright © 2011-2022 走看看