1. 程式人生 > >NetCore MVC CACHE

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