89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
using System;
 | 
						|
using System.Text.RegularExpressions;
 | 
						|
using System.Threading.Tasks;
 | 
						|
 | 
						|
namespace IRaCIS.Core.Infra.Common.Cache
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Redis缓存
 | 
						|
    /// </summary>
 | 
						|
    public class RedisCache : ICache
 | 
						|
    {
 | 
						|
        public long Del(params string[] key)
 | 
						|
        {
 | 
						|
            return RedisHelper.Del(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<long> DelAsync(params string[] key)
 | 
						|
        {
 | 
						|
            return RedisHelper.DelAsync(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public async Task<long> DelByPatternAsync(string pattern)
 | 
						|
        {
 | 
						|
            if (string.IsNullOrEmpty(pattern))
 | 
						|
                return default;
 | 
						|
 | 
						|
            pattern = Regex.Replace(pattern, @"\{.*\}", "*");
 | 
						|
 | 
						|
            var keys = (await RedisHelper.KeysAsync(pattern));
 | 
						|
            if(keys != null && keys.Length > 0)
 | 
						|
            {
 | 
						|
                return await RedisHelper.DelAsync(keys);
 | 
						|
            }
 | 
						|
 | 
						|
            return default;
 | 
						|
        }
 | 
						|
 | 
						|
        public bool Exists(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.Exists(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<bool> ExistsAsync(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.ExistsAsync(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public string Get(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.Get(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public T Get<T>(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.Get<T>(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<string> GetAsync(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.GetAsync(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<T> GetAsync<T>(string key)
 | 
						|
        {
 | 
						|
            return RedisHelper.GetAsync<T>(key);
 | 
						|
        }
 | 
						|
 | 
						|
        public bool Set(string key, object value)
 | 
						|
        {
 | 
						|
            return RedisHelper.Set(key, value);
 | 
						|
        }
 | 
						|
 | 
						|
        public bool Set(string key, object value, TimeSpan expire)
 | 
						|
        {
 | 
						|
            return RedisHelper.Set(key, value, expire);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<bool> SetAsync(string key, object value)
 | 
						|
        {
 | 
						|
            return RedisHelper.SetAsync(key, value);
 | 
						|
        }
 | 
						|
 | 
						|
        public Task<bool> SetAsync(string key, object value, TimeSpan expire)
 | 
						|
        {
 | 
						|
            return RedisHelper.SetAsync(key, value, expire);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |