NetCore MVC CACHE

1.MemoryCache 的创建与清除

//创建
 _cache =new MemoryCache(Options.Create(new MemoryCacheOptions()))

 /// <summary>
        /// 清空缓存
        /// </summary>
        /// <returns></returns>
        public bool Clear()
        {
            const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
            var entries = _cache.GetType().GetField("_entries", flags).GetValue(_cache);
            var cacheItems = entries as IDictionary;
            var keys = new List<string>();
            cacheItems.Clear();
            return true;
        }

2.RedisCache redis 相关服务的安装网上很多,自己搜索即可 使用redis需要引用Microsoft.Extensions.Caching.Redis.Core 包  

//创建 
 _database = 0;
            _connection = ConnectionMultiplexer.Connect("127.0.01");//服务地址
            _cache = _connection.GetDatabase(_database);
            _dbinstance = "Redis_Instance";//key前缀
//删除
  public bool Clear()
        {
            var keys = new List<string>();
            //遍历集群内服务器
            foreach (var endPoint in _connection.GetEndPoints())
            {
                //获取指定服务器
                var server = _connection.GetServer(endPoint);
                //在指定服务器上使用 keys 或者 scan 命令来遍历key

                foreach (var key in server.Keys(_database))
                {
                    //获取key对于的值
                   
                    
                    _cache.KeyDelete(key);
                }
            }
          // this.RemoveAll(keys);
            return true;
        }

猜你喜欢

转载自my.oschina.net/u/3049482/blog/2965067
今日推荐