diff --git a/CoreCms.Net.Caching/CoreCms.Net.Caching.csproj b/CoreCms.Net.Caching/CoreCms.Net.Caching.csproj index ac65b84d..9549ce7d 100644 --- a/CoreCms.Net.Caching/CoreCms.Net.Caching.csproj +++ b/CoreCms.Net.Caching/CoreCms.Net.Caching.csproj @@ -5,7 +5,7 @@ - + diff --git a/CoreCms.Net.Caching/Manual/RedisCacheManager.cs b/CoreCms.Net.Caching/Manual/RedisCacheManager.cs index 37a203d1..94889875 100644 --- a/CoreCms.Net.Caching/Manual/RedisCacheManager.cs +++ b/CoreCms.Net.Caching/Manual/RedisCacheManager.cs @@ -14,65 +14,11 @@ using System; using System.Collections.Generic; using System.Linq; using CoreCms.Net.Caching.Manual; -using CoreCms.Net.Configuration; -using CoreCms.Net.Utility.Extensions; -using StackExchange.Redis; namespace CoreCms.Net.Caching.Redis { public class RedisCacheManager : IManualCacheManager { - private readonly string _redisConnenctionString; - - public volatile ConnectionMultiplexer RedisConnection; - - private readonly object _redisConnectionLock = new object(); - - public RedisCacheManager() - { - string redisConfiguration = AppSettingsConstVars.RedisConfigConnectionString;//获取连接字符串 - - if (string.IsNullOrWhiteSpace(redisConfiguration)) - { - throw new ArgumentException("redis config is empty", nameof(redisConfiguration)); - } - _redisConnenctionString = redisConfiguration; - - RedisConnection = GetRedisConnection(); - } - - /// - /// 核心代码,获取连接实例 - /// 通过双if 夹lock的方式,实现单例模式 - /// - /// - private ConnectionMultiplexer GetRedisConnection() - { - //如果已经连接实例,直接返回 - if (RedisConnection != null && RedisConnection.IsConnected) - { - return RedisConnection; - } - //加锁,防止异步编程中,出现单例无效的问题 - lock (_redisConnectionLock) - { - if (RedisConnection != null) - { - //释放redis连接 - RedisConnection.Dispose(); - } - try - { - RedisConnection = ConnectionMultiplexer.Connect(_redisConnenctionString); - } - catch (Exception) - { - throw new Exception("Redis服务未启用,请开启该服务,并且请注意端口号,Redis默认使用6379端口号。"); - } - } - return RedisConnection; - } - /// /// 判断key是否存在 @@ -81,12 +27,10 @@ namespace CoreCms.Net.Caching.Redis /// public bool Exists(string key) { - return RedisConnection.GetDatabase().KeyExists(key); + return RedisHelper.Exists(key); } - - /// /// 添加缓存 /// @@ -98,15 +42,7 @@ namespace CoreCms.Net.Caching.Redis { if (value != null) { - //序列化,将object值生成RedisValue - if (expiresIn > 0) - { - return RedisConnection.GetDatabase().StringSet(key, SerializeExtensions.Serialize(value), TimeSpan.FromMinutes(expiresIn)); - } - else - { - return RedisConnection.GetDatabase().StringSet(key, SerializeExtensions.Serialize(value)); - } + return expiresIn > 0 ? RedisHelper.Set(key, value, TimeSpan.FromMinutes(expiresIn)) : RedisHelper.Set(key, value); } return false; } @@ -118,7 +54,7 @@ namespace CoreCms.Net.Caching.Redis /// public void Remove(string key) { - RedisConnection.GetDatabase().KeyDelete(key); + RedisHelper.DelAsync(key); } /// @@ -127,11 +63,9 @@ namespace CoreCms.Net.Caching.Redis /// public void RemoveAll(IEnumerable keys) { - foreach (var key in keys) - { - RedisConnection.GetDatabase().KeyDelete(key); - } - + var enumerable = keys as string[] ?? keys.ToArray(); + string[] keyStrings = enumerable.ToArray(); + RedisHelper.DelAsync(keyStrings); } /// @@ -141,19 +75,12 @@ namespace CoreCms.Net.Caching.Redis /// public T Get(string key) { - var value = RedisConnection.GetDatabase().StringGet(key); - if (value.HasValue) - { - //需要用的反序列化,将Redis存储的Byte[],进行反序列化 - return SerializeExtensions.Deserialize(value); - } - - return default; + return RedisHelper.Get(key); } public object Get(string key) { - return RedisConnection.GetDatabase().StringGet(key); + return RedisHelper.Get(key); } public IDictionary GetAll(IEnumerable keys) @@ -162,48 +89,27 @@ namespace CoreCms.Net.Caching.Redis throw new ArgumentNullException(nameof(keys)); var dict = new Dictionary(); - keys.ToList().ForEach(item => dict.Add(item, RedisConnection.GetDatabase().StringGet(item))); + keys.ToList().ForEach(item => dict.Add(item, RedisHelper.Get(item))); return dict; } public void RemoveCacheAll() { - foreach (var endPoint in GetRedisConnection().GetEndPoints()) - { - var server = GetRedisConnection().GetServer(endPoint); - foreach (var key in server.Keys()) - { - RedisConnection.GetDatabase().KeyDelete(key); - } - } + //查找所有分区节点中符合给定模式(pattern)的 key + var cacheKeys = RedisHelper.Keys("*"); + RedisHelper.Del(cacheKeys); } public void RemoveCacheRegex(string pattern) { - var script = "return redis.call('keys',@pattern)"; - var prepared = LuaScript.Prepare(script); - var redisResult = RedisConnection.GetDatabase().ScriptEvaluate(prepared, new { pattern }); - if (!redisResult.IsNull) - { - RedisConnection.GetDatabase().KeyDelete((RedisKey[])redisResult); //删除一组key - } + var cacheKeys = RedisHelper.Keys(pattern); + RedisHelper.Del(cacheKeys); } public IList SearchCacheRegex(string pattern) { - var list = new List(); - var script = "return redis.call('keys',@pattern)"; - var prepared = LuaScript.Prepare(script); - var redisResult = RedisConnection.GetDatabase().ScriptEvaluate(prepared, new { pattern }); - if (!redisResult.IsNull) - { - foreach (var key in (RedisKey[])redisResult) - { - list.Add(key); - } - } - return list; + return RedisHelper.Keys(pattern); } } } diff --git a/CoreCms.Net.Caching/SqlSugar/SqlSugarCache.cs b/CoreCms.Net.Caching/SqlSugar/SqlSugarCache.cs deleted file mode 100644 index b8771689..00000000 --- a/CoreCms.Net.Caching/SqlSugar/SqlSugarCache.cs +++ /dev/null @@ -1,58 +0,0 @@ -using CoreCms.Net.Utility; -using EasyCaching.Core; -using SqlSugar; -using System; -using System.Collections.Generic; - -namespace CoreCms.Net.Caching.SqlSugar -{ - /// - /// 仅供ORM缓存使用 - /// - public class SqlSugarCache : ICacheService - { - private static readonly IEasyCachingProvider cache = Storage.GetService(); - - public void Add(string key, V value) - { - cache.Set(key, value, TimeSpan.FromSeconds(int.MaxValue)); - } - - public void Add(string key, V value, int cacheDurationInSeconds) - { - cache.Set(key, value, TimeSpan.FromSeconds(cacheDurationInSeconds)); - } - - public bool ContainsKey(string key) - { - return cache.Exists(key); - } - - public V Get(string key) - { - return cache.Get(key).Value; - } - - public IEnumerable GetAllKey() - { - return cache.GetByPrefix("SqlSugarDataCache.").Keys; - } - - public void Remove(string key) - { - cache.Remove(key); - } - - public V GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = 2147483647) - { - if (cache.Exists(cacheKey)) - { - return cache.Get(cacheKey).Value; - } - - V v = create(); - cache.Set(cacheKey, v, TimeSpan.FromSeconds(cacheDurationInSeconds)); - return v; - } - } -} \ No newline at end of file diff --git a/CoreCms.Net.Caching/SqlSugar/SqlSugarMemoryCache.cs b/CoreCms.Net.Caching/SqlSugar/SqlSugarMemoryCache.cs new file mode 100644 index 00000000..1c5e4b80 --- /dev/null +++ b/CoreCms.Net.Caching/SqlSugar/SqlSugarMemoryCache.cs @@ -0,0 +1,282 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.Extensions.Caching.Memory; +using SqlSugar; + +namespace CoreCms.Net.Caching.SqlSugar +{ + public class SqlSugarMemoryCache : ICacheService + { + MemoryCacheHelper cache = new MemoryCacheHelper(); + public void Add(string key, V value) + { + cache.Set(key, value); + } + + public void Add(string key, V value, int cacheDurationInSeconds) + { + cache.Set(key, value, cacheDurationInSeconds); + } + + public bool ContainsKey(string key) + { + return cache.Exists(key); + } + + public V Get(string key) + { + return cache.Get(key); + } + + public IEnumerable GetAllKey() + { + return cache.GetCacheKeys(); + } + + public V GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = int.MaxValue) + { + if (cache.Exists(cacheKey)) + { + return cache.Get(cacheKey); + } + else + { + var result = create(); + cache.Set(cacheKey, result, cacheDurationInSeconds); + return result; + } + } + + public void Remove(string key) + { + cache.Remove(key); + } + } + public class MemoryCacheHelper + { + private static readonly Microsoft.Extensions.Caching.Memory.MemoryCache Cache = new Microsoft.Extensions.Caching.Memory.MemoryCache(new MemoryCacheOptions()); + + /// + /// 验证缓存项是否存在 + /// + /// 缓存Key + /// + public bool Exists(string key) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + return Cache.TryGetValue(key, out _); + } + + /// + /// 添加缓存 + /// + /// 缓存Key + /// 缓存Value + /// 滑动过期时长(如果在过期时间内有操作,则以当前时间点延长过期时间) + /// 绝对过期时长 + /// + public bool Set(string key, object value, TimeSpan expiresSliding, TimeSpan expiressAbsoulte) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + if (value == null) + throw new ArgumentNullException(nameof(value)); + + Cache.Set(key, value, + new MemoryCacheEntryOptions().SetSlidingExpiration(expiresSliding) + .SetAbsoluteExpiration(expiressAbsoulte)); + return Exists(key); + } + + /// + /// 添加缓存 + /// + /// 缓存Key + /// 缓存Value + /// 缓存时长 + /// 是否滑动过期(如果在过期时间内有操作,则以当前时间点延长过期时间) + /// + public bool Set(string key, object value, TimeSpan expiresIn, bool isSliding = false) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + if (value == null) + throw new ArgumentNullException(nameof(value)); + + Cache.Set(key, value, + isSliding + ? new MemoryCacheEntryOptions().SetSlidingExpiration(expiresIn) + : new MemoryCacheEntryOptions().SetAbsoluteExpiration(expiresIn)); + + return Exists(key); + } + + /// + /// 添加缓存 + /// + /// 缓存Key + /// 缓存Value + /// + public void Set(string key, object value) + { + Set(key, value, TimeSpan.FromDays(1)); + } + + /// + /// 添加缓存 + /// + /// 缓存Key + /// 缓存Value + /// + /// + public void Set(string key, object value, TimeSpan ts) + { + Set(key, value, ts, false); + } + + /// + /// 添加缓存 + /// + /// 缓存Key + /// 缓存Value + /// + /// + public void Set(string key, object value, int seconds) + { + var ts = TimeSpan.FromSeconds(seconds); + Set(key, value, ts, false); + } + + /// + /// 删除缓存 + /// + /// 缓存Key + /// + public void Remove(string key) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + Cache.Remove(key); + } + + /// + /// 批量删除缓存 + /// + /// + public void RemoveAll(IEnumerable keys) + { + if (keys == null) + throw new ArgumentNullException(nameof(keys)); + + keys.ToList().ForEach(item => Cache.Remove(item)); + } + + + #region 获取缓存 + + /// + /// 获取缓存 + /// + /// 缓存Key + /// + public T Get(string key) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + + return Cache.Get(key); + } + + /// + /// 获取缓存 + /// + /// 缓存Key + /// + public object Get(string key) + { + if (key == null) + throw new ArgumentNullException(nameof(key)); + + return Cache.Get(key); + } + + /// + /// 获取缓存集合 + /// + /// 缓存Key集合 + /// + public IDictionary GetAll(IEnumerable keys) + { + if (keys == null) + throw new ArgumentNullException(nameof(keys)); + + var dict = new Dictionary(); + keys.ToList().ForEach(item => dict.Add(item, Cache.Get(item))); + return dict; + } + #endregion + + /// + /// 删除所有缓存 + /// + public void RemoveCacheAll() + { + var l = GetCacheKeys(); + foreach (var s in l) + { + Remove(s); + } + } + + /// + /// 删除匹配到的缓存 + /// + /// + /// + public void RemoveCacheRegex(string pattern) + { + IList l = SearchCacheRegex(pattern); + foreach (var s in l) + { + Remove(s); + } + } + + /// + /// 搜索 匹配到的缓存 + /// + /// + /// + public IList SearchCacheRegex(string pattern) + { + var cacheKeys = GetCacheKeys(); + var l = cacheKeys.Where(k => Regex.IsMatch(k, pattern)).ToList(); + return l.AsReadOnly(); + } + + /// + /// 获取所有缓存键 + /// + /// + public List GetCacheKeys() + { + 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(); + if (cacheItems == null) return keys; + foreach (DictionaryEntry cacheItem in cacheItems) + { + keys.Add(cacheItem.Key.ToString()); + } + return keys; + } + } +} diff --git a/CoreCms.Net.Caching/SqlSugar/SqlSugarRedisCache.cs b/CoreCms.Net.Caching/SqlSugar/SqlSugarRedisCache.cs new file mode 100644 index 00000000..144c4c04 --- /dev/null +++ b/CoreCms.Net.Caching/SqlSugar/SqlSugarRedisCache.cs @@ -0,0 +1,59 @@ +using SqlSugar; +using System; +using System.Collections.Generic; + +namespace CoreCms.Net.Caching.SqlSugar +{ + public class SqlSugarRedisCache : ICacheService + { + + public SqlSugarRedisCache() + { + } + + public void Add(string key, TV value) + { + RedisHelper.Set(key, value); + } + + public void Add(string key, TV value, int cacheDurationInSeconds) + { + RedisHelper.Set(key, value, cacheDurationInSeconds); + } + + public bool ContainsKey(string key) + { + return RedisHelper.Exists(key); + } + + public TV Get(string key) + { + return RedisHelper.Get(key); + } + + public IEnumerable GetAllKey() + { + return RedisHelper.Keys("SqlSugarDataCache.*"); + } + + public TV GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = int.MaxValue) + { + if (this.ContainsKey(cacheKey)) + { + return this.Get(cacheKey); + } + else + { + var result = create(); + this.Add(cacheKey, result, cacheDurationInSeconds); + return result; + } + } + + public void Remove(string key) + { + RedisHelper.DelAsync(key); + } + } + +} \ No newline at end of file diff --git a/CoreCms.Net.Core/Config/RedisCacheSetup.cs b/CoreCms.Net.Core/Config/RedisCacheSetup.cs index c362c8df..84647fcb 100644 --- a/CoreCms.Net.Core/Config/RedisCacheSetup.cs +++ b/CoreCms.Net.Core/Config/RedisCacheSetup.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using CoreCms.Net.Caching.AutoMate.RedisCache; using CoreCms.Net.Configuration; +using CSRedis; using Microsoft.Extensions.DependencyInjection; using StackExchange.Redis; @@ -19,6 +20,13 @@ namespace CoreCms.Net.Core.Config { if (services == null) throw new ArgumentNullException(nameof(services)); + + if (AppSettingsConstVars.RedisUseCache) + { + //初始化Redis及分布式缓存 + RedisHelper.Initialization(new CSRedisClient(AppSettingsConstVars.RedisConfigConnectionString)); + } + services.AddTransient(); // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的 @@ -34,6 +42,7 @@ namespace CoreCms.Net.Core.Config return ConnectionMultiplexer.Connect(configuration); }); + } } -} +} \ No newline at end of file diff --git a/CoreCms.Net.Core/Config/SqlSugarSetup.cs b/CoreCms.Net.Core/Config/SqlSugarSetup.cs index 636b0074..4ed5472d 100644 --- a/CoreCms.Net.Core/Config/SqlSugarSetup.cs +++ b/CoreCms.Net.Core/Config/SqlSugarSetup.cs @@ -49,8 +49,7 @@ namespace CoreCms.Net.Core.Config db.CurrentConnectionConfig.ConfigureExternalServices = new ConfigureExternalServices() { //判断是否开启redis设置二级缓存方式 - //DataInfoCacheService = AppSettingsConstVars.RedisUseCache ? (ICacheService)new SqlSugarRedisCache() : new SqlSugarMemoryCache() - DataInfoCacheService = new SqlSugarCache() + DataInfoCacheService = AppSettingsConstVars.RedisUseCache ? new SqlSugarRedisCache() : new SqlSugarMemoryCache() }; db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings() { diff --git a/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj b/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj index eb4e7843..1c61286e 100644 --- a/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj +++ b/CoreCms.Net.Web.Admin/CoreCms.Net.Web.Admin.csproj @@ -49,9 +49,7 @@ - - - + diff --git a/CoreCms.Net.Web.Admin/Program.cs b/CoreCms.Net.Web.Admin/Program.cs index 9419cf4f..7aa24ece 100644 --- a/CoreCms.Net.Web.Admin/Program.cs +++ b/CoreCms.Net.Web.Admin/Program.cs @@ -4,21 +4,16 @@ using CoreCms.Net.Configuration; using CoreCms.Net.Loging; using Essensoft.Paylink.Alipay; using Essensoft.Paylink.WeChatPay; -using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using NLog.Web; -using StackExchange.Redis; using System; using System.Linq; -using System.Reflection; using CoreCms.Net.Auth; using CoreCms.Net.Core.AutoFac; using CoreCms.Net.Core.Config; @@ -27,7 +22,6 @@ using CoreCms.Net.Mapping; using CoreCms.Net.Middlewares; using CoreCms.Net.Swagger; using CoreCms.Net.Utility; -using EasyCaching.Core; using Microsoft.Extensions.DependencyInjection.Extensions; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; @@ -132,27 +126,6 @@ YitIdHelper.SetIdGenerator(options); // 初始化以后,即可在任何需要生成ID的地方,调用以下方法: //var newId = YitIdHelper.NextId(); - -#region 缓存配置 -string cacheProviderName = "default"; -builder.Services.AddEasyCaching(options => -{ - ////使用文档 https://easycaching.readthedocs.io/en/latest - if (AppSettingsConstVars.RedisUseCache) - { - options.UseCSRedis(builder.Configuration); - cacheProviderName = EasyCachingConstValue.DefaultCSRedisName; - } - else - { - cacheProviderName = EasyCachingConstValue.DefaultInMemoryName; - options.UseInMemory(builder.Configuration); - } - options.WithJson(cacheProviderName); - -}); -#endregion - #region AutoFac注册============================================================================ builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); @@ -199,8 +172,6 @@ app.UseRequestResponseLog(); app.UseRecordAccessLogsMildd(GlobalEnumVars.CoreShopSystemCategory.Admin.ToString()); // 记录ip请求 (注意开启权限,不然本地无法写入) app.UseIpLogMildd(); -//注册csredis中间件处理 -Storage.Container = app.Services.CreateScope().ServiceProvider.GetAutofacRoot(); #endregion app.UseSwagger().UseSwaggerUI(c => diff --git a/CoreCms.Net.Web.Admin/appsettings.json b/CoreCms.Net.Web.Admin/appsettings.json index 3285a33e..b4ab7e6d 100644 --- a/CoreCms.Net.Web.Admin/appsettings.json +++ b/CoreCms.Net.Web.Admin/appsettings.json @@ -27,37 +27,6 @@ // 如果采用容器化部署Service 要写成redis的服务名,否则写地址 "ConnectionString": "127.0.0.1:6379,password=,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //redis数据库连接字符串 }, - "easycaching": { - "csredis": { - "MaxRdSecond": 0, //预防缓存在同一时间全部失效,可以为每个key的过期时间添加一个随机的秒数,默认值是120秒 - "EnableLogging": false, // 是否开启日志,默认值是false - "LockMs": 5000, // 互斥锁的存活时间, 默认值是5000毫秒 - "SleepMs": 300, // 没有获取到互斥锁时的休眠时间,默认值是300毫秒 - "dbconfig": { - "ConnectionStrings": [ - "127.0.0.1:6379,password=,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //如果没有密码请保持为空 - ], - //"Sentinels": [ - // "192.169.1.10:26379", - // "192.169.1.11:26379", - // "192.169.1.12:26379" - //], - "ReadOnly": false - } - }, - "inmemory": { - "MaxRdSecond": 0, - "EnableLogging": false, - "LockMs": 5000, - "SleepMs": 300, - "DBConfig": { - "SizeLimit": 10000, - "ExpirationScanFrequency": 60, // InMemory的过期扫描频率,默认值是60秒 - "EnableReadDeepClone": true, - "EnableWriteDeepClone": false - } - } - }, //jwt授权认证的一些设置 "JwtConfig": { "SecretKey": "8kh2luzmp0oq9wfbdeasygj647vr531n", diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj index 17ff2e0b..5155aeb0 100644 --- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj +++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj @@ -53,9 +53,7 @@ - - - + diff --git a/CoreCms.Net.Web.WebApi/Program.cs b/CoreCms.Net.Web.WebApi/Program.cs index 92464028..1f195463 100644 --- a/CoreCms.Net.Web.WebApi/Program.cs +++ b/CoreCms.Net.Web.WebApi/Program.cs @@ -14,18 +14,14 @@ using CoreCms.Net.Swagger; using CoreCms.Net.Task; using CoreCms.Net.Utility; using CoreCms.Net.WeChat.Service.Mediator; -using EasyCaching.Core; using Essensoft.Paylink.Alipay; using Essensoft.Paylink.WeChatPay; using Hangfire; using Hangfire.Dashboard.BasicAuthorization; -using MediatR; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; @@ -143,27 +139,6 @@ YitIdHelper.SetIdGenerator(options); // 初始化以后,即可在任何需要生成ID的地方,调用以下方法: //var newId = YitIdHelper.NextId(); - -#region 缓存配置 -string cacheProviderName = "default"; -builder.Services.AddEasyCaching(options => -{ - ////使用文档 https://easycaching.readthedocs.io/en/latest - if (AppSettingsConstVars.RedisUseCache) - { - options.UseCSRedis(builder.Configuration); - cacheProviderName = EasyCachingConstValue.DefaultCSRedisName; - } - else - { - cacheProviderName = EasyCachingConstValue.DefaultInMemoryName; - options.UseInMemory(builder.Configuration); - } - options.WithJson(cacheProviderName); - -}); -#endregion - #region AutoFac注册============================================================================ builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); @@ -210,8 +185,6 @@ app.UseRequestResponseLog(); app.UseRecordAccessLogsMildd(GlobalEnumVars.CoreShopSystemCategory.Api.ToString()); // 记录ip请求 (注意开启权限,不然本地无法写入) app.UseIpLogMildd(); -//注册csredis中间件处理 -Storage.Container = app.Services.CreateScope().ServiceProvider.GetAutofacRoot(); #endregion //强制显示中文 diff --git a/CoreCms.Net.Web.WebApi/appsettings.json b/CoreCms.Net.Web.WebApi/appsettings.json index a888fbb5..d5e7bdfa 100644 --- a/CoreCms.Net.Web.WebApi/appsettings.json +++ b/CoreCms.Net.Web.WebApi/appsettings.json @@ -27,37 +27,6 @@ // 如果采用容器化部署Service 要写成redis的服务名,否则写地址 "ConnectionString": "127.0.0.1:6379,password=,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //redis数据库连接字符串 }, - "easycaching": { - "csredis": { - "MaxRdSecond": 0, //预防缓存在同一时间全部失效,可以为每个key的过期时间添加一个随机的秒数,默认值是120秒 - "EnableLogging": false, // 是否开启日志,默认值是false - "LockMs": 5000, // 互斥锁的存活时间, 默认值是5000毫秒 - "SleepMs": 300, // 没有获取到互斥锁时的休眠时间,默认值是300毫秒 - "dbconfig": { - "ConnectionStrings": [ - "127.0.0.1:6379,password=,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //如果没有密码请保持为空 - ], - //"Sentinels": [ - // "192.169.1.10:26379", - // "192.169.1.11:26379", - // "192.169.1.12:26379" - //], - "ReadOnly": false - } - }, - "inmemory": { - "MaxRdSecond": 0, - "EnableLogging": false, - "LockMs": 5000, - "SleepMs": 300, - "DBConfig": { - "SizeLimit": 10000, - "ExpirationScanFrequency": 60, // InMemory的过期扫描频率,默认值是60秒 - "EnableReadDeepClone": true, - "EnableWriteDeepClone": false - } - } - }, //jwt授权认证的一些设置 "JwtConfig": { "SecretKey": "8kh2luzmp0oq9wfbdeasygj647vr531n",