package com.iailab.module.infra.convert.redis;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.iailab.module.infra.controller.admin.redis.vo.RedisMonitorRespVO;
|
import org.mapstruct.Mapper;
|
import org.mapstruct.factory.Mappers;
|
|
import java.util.ArrayList;
|
import java.util.Properties;
|
|
@Mapper
|
public interface RedisConvert {
|
|
RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class);
|
|
default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) {
|
RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize)
|
.commandStats(new ArrayList<>(commandStats.size())).build();
|
commandStats.forEach((key, value) -> {
|
respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder()
|
.command(StrUtil.subAfter((String) key, "cmdstat_", false))
|
.calls(Long.valueOf(StrUtil.subBetween((String) value, "calls=", ",")))
|
.usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ",")))
|
.build());
|
});
|
return respVO;
|
}
|
|
}
|