😎优化NewLife.Redis升级时,对缓存海量键调用分页遍历
This commit is contained in:
parent
707e44ee1a
commit
efc2d9a620
@ -27,7 +27,7 @@
|
|||||||
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
||||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||||
<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" Aliases="BouncyCastleV2" />
|
<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" Aliases="BouncyCastleV2" />
|
||||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="9.1.9" />
|
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="9.1.10" />
|
||||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.128" />
|
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.128" />
|
||||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.128" />
|
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.128" />
|
||||||
<PackageReference Include="Furion.Pure" Version="4.9.7.128" />
|
<PackageReference Include="Furion.Pure" Version="4.9.7.128" />
|
||||||
|
|||||||
@ -60,7 +60,7 @@ public static class YitIdHelperExtension
|
|||||||
var redisLock = cache.AcquireLock(lockName, 10000, 15000, true);
|
var redisLock = cache.AcquireLock(lockName, 10000, 15000, true);
|
||||||
var keys = cache == Cache.Default
|
var keys = cache == Cache.Default
|
||||||
? cache.Keys.Where(u => u.StartsWith($"{_options.WorkerPrefix}{valueKey}:*"))
|
? cache.Keys.Where(u => u.StartsWith($"{_options.WorkerPrefix}{valueKey}:*"))
|
||||||
: ((FullRedis)cache).Search($"{_options.WorkerPrefix}{valueKey}:*", int.MaxValue);
|
: cache.Search($"{_options.WorkerPrefix}{valueKey}:*", 0, -1);
|
||||||
|
|
||||||
var tempWorkIds = _workIds;
|
var tempWorkIds = _workIds;
|
||||||
foreach (var key in keys)
|
foreach (var key in keys)
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
|
|||||||
{
|
{
|
||||||
return _cacheProvider.Cache == Cache.Default
|
return _cacheProvider.Cache == Cache.Default
|
||||||
? [.. _cacheProvider.Cache.Keys.Where(u => u.StartsWith(_cacheOptions.Prefix)).Select(u => u[_cacheOptions.Prefix.Length..]).OrderBy(u => u)]
|
? [.. _cacheProvider.Cache.Keys.Where(u => u.StartsWith(_cacheOptions.Prefix)).Select(u => u[_cacheOptions.Prefix.Length..]).OrderBy(u => u)]
|
||||||
: [.. ((FullRedis)_cacheProvider.Cache).Search($"{_cacheOptions.Prefix}*", int.MaxValue).Select(u => u[_cacheOptions.Prefix.Length..]).OrderBy(u => u)];
|
: [.. _cacheProvider.Cache.Search($"{_cacheOptions.Prefix}*", 0, -1).Select(u => u[_cacheOptions.Prefix.Length..]).OrderBy(u => u)];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -455,7 +455,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
|
|||||||
{
|
{
|
||||||
var delKeys = _cacheProvider.Cache == Cache.Default
|
var delKeys = _cacheProvider.Cache == Cache.Default
|
||||||
? _cacheProvider.Cache.Keys.Where(u => u.StartsWith($"{_cacheOptions.Prefix}{prefixKey}")).ToArray()
|
? _cacheProvider.Cache.Keys.Where(u => u.StartsWith($"{_cacheOptions.Prefix}{prefixKey}")).ToArray()
|
||||||
: ((FullRedis)_cacheProvider.Cache).Search($"{_cacheOptions.Prefix}{prefixKey}*", int.MaxValue).ToArray();
|
: _cacheProvider.Cache.Search($"{_cacheOptions.Prefix}{prefixKey}*", 0, -1).ToArray();
|
||||||
return _cacheProvider.Cache.Remove(delKeys);
|
return _cacheProvider.Cache.Remove(delKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,7 +469,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
|
|||||||
{
|
{
|
||||||
return _cacheProvider.Cache == Cache.Default
|
return _cacheProvider.Cache == Cache.Default
|
||||||
? _cacheProvider.Cache.Keys.Where(u => u.StartsWith($"{_cacheOptions.Prefix}{prefixKey}")).Select(u => u[_cacheOptions.Prefix.Length..]).ToList()
|
? _cacheProvider.Cache.Keys.Where(u => u.StartsWith($"{_cacheOptions.Prefix}{prefixKey}")).Select(u => u[_cacheOptions.Prefix.Length..]).ToList()
|
||||||
: ((FullRedis)_cacheProvider.Cache).Search($"{_cacheOptions.Prefix}{prefixKey}*", int.MaxValue).Select(u => u[_cacheOptions.Prefix.Length..]).ToList();
|
: _cacheProvider.Cache.Search($"{_cacheOptions.Prefix}{prefixKey}*", 0, -1).Select(u => u[_cacheOptions.Prefix.Length..]).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user