| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package cn.com.goldenwater.dcproj.controller.monitor;
- import cn.com.goldenwater.dcproj.model.AjaxResult;
- import cn.com.goldenwater.dcproj.utils.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.connection.RedisServerCommands;
- import org.springframework.data.redis.core.RedisCallback;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.*;
- /**
- * 缓存监控
- *
- * @author ruoyi
- */
- @RestController
- @RequestMapping("/monitor/cache")
- public class CacheController {
- @Autowired
- private RedisTemplate<String, String> redisTemplate;
- @GetMapping()
- public AjaxResult getInfo() throws Exception {
- Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::info);
- Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
- Object dbSize = redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::dbSize);
- Map<String, Object> result = new HashMap<>(3);
- result.put("info", info);
- result.put("dbSize", dbSize);
- List<Map<String, String>> pieList = new ArrayList<>();
- commandStats.stringPropertyNames().forEach(key -> {
- Map<String, String> data = new HashMap<>(2);
- String property = commandStats.getProperty(key);
- data.put("name", StringUtils.removeStart(key, "cmdstat_"));
- data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
- pieList.add(data);
- });
- result.put("commandStats", pieList);
- return AjaxResult.success(result);
- }
- }
|