diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java index 1e9c6558b..5767c8df0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java @@ -6,6 +6,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.StringUtils; import org.redisson.spring.data.connection.RedissonConnectionFactory; import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisConnectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -31,9 +32,9 @@ public class CacheController { @GetMapping() public R getInfo() throws Exception { RedisConnection connection = connectionFactory.getConnection(); - Properties commandStats = connection.commands().info("commandstats"); - - List> pieList = new ArrayList<>(); + try { + Properties commandStats = connection.commands().info("commandstats"); + List> pieList = new ArrayList<>(); if (commandStats != null) { commandStats.stringPropertyNames().forEach(key -> { Map data = new HashMap<>(2); @@ -43,10 +44,13 @@ public class CacheController { pieList.add(data); }); } - return R.ok(new CacheListInfoVo( connection.commands().info(), connection.commands().dbSize(), pieList)); + } finally { + // 归还连接给连接池 + RedisConnectionUtils.releaseConnection(connection, connectionFactory); + } } public record CacheListInfoVo(Properties info, Long dbSize, List> commandStats) {}