修复 Redis 将 KEYS 命令替换为更安全的 SCAN 命令

This commit is contained in:
小肥羊 2026-03-06 18:17:25 +08:00
parent 7188f8ab71
commit 3b431b978a
1 changed files with 4 additions and 2 deletions

View File

@ -463,7 +463,8 @@ namespace VideoAnalysisCore.Controllers
public IActionResult OnlineDevices()
{
// 扫描 Heartbeat Key
var keys = redisManager.Redis.Keys(RedisExpandKey.DeviceHeartbeat("*"));
var pattern = RedisExpandKey.DeviceHeartbeat("*");
var keys = redisManager.Redis.Scan(pattern, 1000).ToList();
var prefix = RedisExpandKey.DeviceHeartbeat("");
var devices = keys.Select(k => k.Replace(prefix, "")).ToList();
return Ok(devices);
@ -488,7 +489,8 @@ namespace VideoAnalysisCore.Controllers
// 获取所有在线节点
oldTaskArr = new List<long>();
// 直接扫描 Heartbeat Key 获取在线设备
var keys = redisManager.Redis.Keys(RedisExpandKey.DeviceHeartbeat("*"));
var pattern = RedisExpandKey.DeviceHeartbeat("*");
var keys = redisManager.Redis.Scan(pattern, 1000).ToList();
var prefix = RedisExpandKey.DeviceHeartbeat("");
var onlineDevices = keys.Select(k => k.Replace(prefix, "")).ToList();