/// <summary> /// 新增缓存 /// </summary> /// <param name="_key">键</param> /// <param name="_value">值</param> /// <returns></returns> public bool Set(string _key, object _value) { ClearUnUsedCache(); LruCacheData data = new LruCacheData(_value); var _resultData = _cache.AddOrUpdate(_key, data, (b, c) => data); return(_resultData == null); }
public LruCache(URL url) { var max = url.GetParameter("cache.size", 1000); var memoryRefreshInterval = url.GetParameter("cache.interval", 1000); var itemExpiryTimeout = url.GetParameter("cache.timeout", 60000); _store = new LruCacheData <object, object>(itemExpiryTimeout, max, memoryRefreshInterval); }
/// <summary> /// 获取缓存 /// </summary> /// <param name="_key"></param> /// <returns></returns> public object Get(string _key) { LruCacheData data = null; if (_cache.TryGetValue(_key, out data)) { data.Age = Interlocked.Increment(ref _currentAge); } return(data != null ? data.Value : null); }
/// <summary> /// 删除缓存 /// </summary> /// <param name="_key"></param> /// <returns></returns> public bool Remove(string _key) { LruCacheData data = null; return(_cache.TryRemove(_key, out data)); }