namespace NetAdmin.Domain.Dto.Sys.Cache; /// /// 响应:缓存统计 /// public sealed record CacheStatisticsRsp : DataAbstraction { private static readonly Regex[] _regexes = { new(@"keyspace_hits:(\d+)", RegexOptions.Compiled) , new(@"keyspace_misses:(\d+)", RegexOptions.Compiled) , new(@"uptime_in_seconds:(\d+)", RegexOptions.Compiled) , new(@"used_cpu_sys:([\d\\.]+)", RegexOptions.Compiled) , new(@"used_cpu_user:([\d\\.]+)", RegexOptions.Compiled) , new(@"used_memory:(\d+)", RegexOptions.Compiled) , new("redis_version:(.+)", RegexOptions.Compiled) }; /// /// Initializes a new instance of the class. /// public CacheStatisticsRsp() { } /// /// Initializes a new instance of the class. /// public CacheStatisticsRsp(string redisResult) { KeyspaceHits = _regexes[0].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); KeyspaceMisses = _regexes[1].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); UpTime = _regexes[2].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); UsedCpu = _regexes[3].Match(redisResult).Groups[1].Value.Trim().DecTry(0) + _regexes[4].Match(redisResult).Groups[1].Value.Trim().DecTry(0); UsedMemory = _regexes[5].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); Version = _regexes[6].Match(redisResult).Groups[1].Value.Trim(); } /// /// 键总数 /// public long DbSize { get; init; } /// /// 命中键的数量 /// public long KeyspaceHits { get; init; } /// /// 未命中键的数量 /// public long KeyspaceMisses { get; init; } /// /// Redis运行时间(秒) /// public long UpTime { get; init; } /// /// 使用的CPU时间(秒) /// public decimal UsedCpu { get; init; } /// /// 使用的内存量(字节) /// public long UsedMemory { get; init; } /// /// Redis版本号 /// public string Version { get; init; } }