update 优化 Redis缓存监控接口 手动归还连接给连接池 提高效率

This commit is contained in:
疯狂的狮子Li
2025-06-27 10:56:46 +08:00
parent 77dcf4b0d4
commit 1ab8750cd5

View File

@@ -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,8 +32,8 @@ public class CacheController {
@GetMapping()
public R<CacheListInfoVo> getInfo() throws Exception {
RedisConnection connection = connectionFactory.getConnection();
try {
Properties commandStats = connection.commands().info("commandstats");
List<Map<String, String>> pieList = new ArrayList<>();
if (commandStats != null) {
commandStats.stringPropertyNames().forEach(key -> {
@@ -46,6 +47,10 @@ public class CacheController {
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<Map<String, String>> commandStats) {}