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