예제 #1
0
        /// <summary>
        /// 缓存续期
        /// </summary>
        /// <param name="key">缓存Key</param>
        /// <param name="hour">时间小时</param>
        /// <returns></returns>
        public static async Task Expire(string key, int hour)
        {
            switch (cacheProvider)
            {
            case Define.CACHEPROVIDER_REDIS:
                await BaseHelper.ExpireAsync(key, hour * 3600);

                break;

            default:
                break;
            }
        }
예제 #2
0
        /// <summary>
        /// 不存在就插入
        /// </summary>
        /// <param name="key">缓存Key</param>
        /// <param name="value">缓存Value</param>
        /// <param name="second">过期时间</param>
        /// <returns></returns>
        public static async Task <bool> SetNx(string key, object value, int second = 10)
        {
            bool result = false;

            switch (cacheProvider)
            {
            case Define.CACHEPROVIDER_REDIS:
                result = await BaseHelper.SetNxAsync(key, value);

                await BaseHelper.ExpireAsync(key, second);

                break;

            case Define.CACHEPROVIDER_MEMORY:
                if (MemoryCacheHelper.Exists(key))
                {
                    result = false;
                    MemoryCacheHelper.Get(key);
                }
                else
                {
                    result = true;
                    MemoryCacheHelper.Set(key, value, TimeSpan.FromSeconds(second), true);
                }
                break;

            default:
                if (MemoryCacheHelper.Exists(key))
                {
                    result = false;
                    MemoryCacheHelper.Get(key);
                }
                else
                {
                    result = true;
                    MemoryCacheHelper.Set(key, value, TimeSpan.FromSeconds(second), true);
                }
                break;
            }
            return(result);
        }