重写SqlSugar二级缓存模糊删除缓存方法覆盖ICacheService实现类SqlSugarCache中的GetAllKey和Remove方法解决是否含有key前缀不一致问题,ipratelimit接入分布式缓存

This commit is contained in:
2023-10-08 16:36:32 +08:00
parent c592925096
commit e7fe909fd0
8 changed files with 28 additions and 19 deletions
+9 -6
View File
@@ -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);
}
@@ -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>