重写SqlSugar二级缓存模糊删除缓存方法覆盖ICacheService实现类SqlSugarCache中的GetAllKey和Remove方法解决是否含有key前缀不一致问题,ipratelimit接入分布式缓存
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using ZR.Common;
|
||||
using ZR.Common.Cache;
|
||||
using ZR.Infrastructure.Cache;
|
||||
|
||||
namespace ZR.ServiceCore.SqlSugar
|
||||
{
|
||||
@@ -31,7 +30,10 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
|
||||
public IEnumerable<string> GetAllKey<V>()
|
||||
{
|
||||
return RedisServer.Cache.Keys("*");
|
||||
var keys = RedisServer.Cache.Keys("cache:SqlSugarDataCache.*");
|
||||
// return RedisServer.Cache.Keys("cache:SqlSugarDataCache.*");
|
||||
keys = keys.Select(it => it.Replace("cache:", "")).ToArray();
|
||||
return keys;
|
||||
// return CacheHelper.GetCacheKeys();
|
||||
}
|
||||
|
||||
@@ -51,15 +53,16 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
}
|
||||
else
|
||||
{
|
||||
var restul = create();
|
||||
var result = create();
|
||||
|
||||
Add(cacheKey, restul, cacheDurationInSeconds);
|
||||
return restul;
|
||||
Add(cacheKey, result, cacheDurationInSeconds);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public void Remove<V>(string key)
|
||||
{
|
||||
// key = key.Split("cache:")[1];
|
||||
RedisServer.Cache.Del(key);
|
||||
// CacheHelper.Remove(key);
|
||||
}
|
||||
|
||||
+11
-2
@@ -4,12 +4,12 @@ using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using SqlSugar.IOC;
|
||||
using ZR.Model.System;
|
||||
using ZR.Infrastructure.Cache;
|
||||
using ZR.ServiceCore.Model;
|
||||
|
||||
namespace ZR.ServiceCore.SqlSugar
|
||||
{
|
||||
public static class SqlsugarSetup
|
||||
public static class SqlSugarSetup
|
||||
{
|
||||
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
|
||||
@@ -56,6 +56,15 @@ namespace ZR.ServiceCore.SqlSugar
|
||||
{
|
||||
InitTable.InitDb();
|
||||
}
|
||||
|
||||
StaticConfig.CacheRemoveByLikeStringFunc = (service, key) =>
|
||||
{
|
||||
var keyList = RedisServer.Cache.Keys("cache:SqlSugarDataCache" + key + "*");
|
||||
foreach (var item in keyList)
|
||||
{
|
||||
RedisServer.Cache.Del(item.Split("cache:")[1]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
Reference in New Issue
Block a user