😎优化NewLife.Redis升级时,对缓存海量键调用分页遍历

This commit is contained in:
zuohuaijun 2025-10-08 10:46:30 +08:00
parent 707e44ee1a
commit efc2d9a620
3 changed files with 5 additions and 5 deletions

View File

@ -27,7 +27,7 @@
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
<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.ObjectMapper.Mapster" Version="4.9.7.128" />
<PackageReference Include="Furion.Pure" Version="4.9.7.128" />

View File

@ -60,7 +60,7 @@ public static class YitIdHelperExtension
var redisLock = cache.AcquireLock(lockName, 10000, 15000, true);
var keys = cache == Cache.Default
? 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;
foreach (var key in keys)

View File

@ -51,7 +51,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
{
return _cacheProvider.Cache == Cache.Default
? [.. _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>
@ -455,7 +455,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
{
var delKeys = _cacheProvider.Cache == Cache.Default
? _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);
}
@ -469,7 +469,7 @@ public class SysCacheService : IDynamicApiController, ISingleton
{
return _cacheProvider.Cache == Cache.Default
? _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>