Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 删除缓存
        /// </summary>
        /// <param name="_key"></param>
        /// <returns></returns>
        public bool Remove(string _key)
        {
            LruCacheData data = null;

            return(_cache.TryRemove(_key, out data));
        }