增加redis server client mem 相关信息数据结构定义
This commit is contained in:
parent
34c9f035ee
commit
b7d7dba4e7
114
middleware/redis/define.go
Normal file
114
middleware/redis/define.go
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
// Package redis ...
|
||||||
|
//
|
||||||
|
// Description : redis ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2021-11-26 5:07 下午
|
||||||
|
package redis
|
||||||
|
|
||||||
|
// FullServerInfo 获取服务器信息
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 5:07 下午 2021/11/26
|
||||||
|
type FullServerInfo struct {
|
||||||
|
ServerInfo *ServerInfo `json:"server_info"`
|
||||||
|
ClientInfo *ClientInfo `json:"client_info"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerInfo 服务器信息
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 5:09 下午 2021/11/26
|
||||||
|
type ServerInfo struct {
|
||||||
|
RedisVersion string `json:"redis_version" yaml:"redis_version"` // Redis 服务器版本
|
||||||
|
RedisGitSha1 string `json:"redis_git_sha1" yaml:"redis_git_sha1"` // Git SHA1
|
||||||
|
RedisGitDirty string `json:"redis_git_dirty" json:"redis_git_dirty"` // Git dirty flag
|
||||||
|
RedisBuildID string `json:"redis_build_id" json:"redis_build_id"` // 构建ID
|
||||||
|
RedisMode string `json:"redis_mode" yaml:"redis_mode"` // 运行模式(“独立”,“哨兵”或“集群”)
|
||||||
|
OS string `json:"os" yaml:"os"` // Redis 服务器的宿主操作系统
|
||||||
|
ArchBits string `json:"arch_bits" yaml:"arch_bits"` // 架构(32 或 64 位)
|
||||||
|
MultiplexingApi string `json:"multiplexing_api" yaml:"multiplexing_api"` // Redis 所使用的事件处理机制
|
||||||
|
AtomicvarApi string `json:"atomicvar_api" yaml:"atomicvar_api"` // atomicvar_api
|
||||||
|
GCCVersion string `json:"gcc_version" yaml:"gcc_version"` // 编译 Redis 时所使用的 GCC 版本
|
||||||
|
ProcessID int `json:"process_id" yaml:"process_id"` // 服务器进程的 PID
|
||||||
|
ProcessSupervised string `json:"process_supervised" yaml:"process_supervised"` // 是否有进程监控
|
||||||
|
RunID string `json:"run_id" yaml:"run_id"` // Redis 服务器的随机标识符(用于 Sentinel 和集群)
|
||||||
|
TCPPort int `json:"tcp_port" yaml:"tcp_port"` // TCP/IP 监听端口
|
||||||
|
ServerTimeUsec int64 `json:"server_time_usec" yaml:"server_time_usec"` // server_time_usec
|
||||||
|
UptimeInSeconds int64 `json:"uptime_in_seconds" yaml:"uptime_in_seconds"` // 自 Redis 服务器启动以来,经过的秒数
|
||||||
|
UptimeInDays int64 `json:"uptime_in_days" yaml:"uptime_in_days"` // 自 Redis 服务器启动以来,经过的天数
|
||||||
|
Hz int64 `json:"hz" yaml:"hz"` // 当前服务器频率
|
||||||
|
ConfiguredHz int64 `json:"configured_hz" yaml:"configured_hz"` // 服务器的频率设置
|
||||||
|
LRUClock int64 `json:"lru_clock" yaml:"lru_clock"` // 以分钟为单位进行自增的时钟,用于 LRU 管理
|
||||||
|
Executable string `json:"executable" yaml:"executable"` // 可执行文件位置
|
||||||
|
ConfigFile string `json:"config_file" yaml:"config_file"` // 服务所使用的配置文件
|
||||||
|
IOThreadsActive int `json:"io_threads_active" yaml:"io_threads_active"` // 活跃的io线程数
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClientInfo 客户端信息
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 5:29 下午 2021/11/26
|
||||||
|
type ClientInfo struct {
|
||||||
|
ConnectedClients int `json:"connected_clients" yaml:"connected_clients"` // 客户端连接数
|
||||||
|
ClusterConnections int `json:"cluster_connections" yaml:"cluster_connections"` // 集群连接数
|
||||||
|
MaxClients int `json:"maxclients" yaml:"max_clients"` // 最大客户端连接数
|
||||||
|
ClientRecentMaxInputBuffer int64 `json:"client_recent_max_input_buffer" yaml:"client_recent_max_input_buffer"` // 最近最大输入缓存
|
||||||
|
ClientRecentMaxOutputBuffer int64 `json:"client_recent_max_output_buffer" yaml:"client_recent_max_output_buffer"` // 最近最大输出缓存
|
||||||
|
BlockedClients int `json:"blocked_clients" yaml:"blocked_clients"` // 阻塞客户端数量, 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
|
||||||
|
TrackingClients int `json:"tracking_clients" yaml:"tracking_clients"` // tracking_clients
|
||||||
|
ClientsInTimeoutTable int `json:"clients_in_timeout_table" yaml:"clients_in_timeout_table"` // clients_in_timeout_table
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemoryInfo 内存使用信息
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 6:08 下午 2021/11/26
|
||||||
|
type MemoryInfo struct {
|
||||||
|
UsedMemory int64 `json:"used_memory" yaml:"used_memory"` // 由 Redis 分配器分配的内存总量,以字节(byte)为单位
|
||||||
|
UsedMemoryHuman string `json:"used_memory_human" yaml:"used_memory_human"` // UsedMemory 可读化表示
|
||||||
|
UsedMemoryRss int64 `json:"used_memory_rss" yaml:"used_memory_rss"` // 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
|
||||||
|
UsedMemoryRssHuman string `json:"used_memory_rss_human" yaml:"used_memory_rss_human"` // UsedMemoryRssHuman 可读化表示
|
||||||
|
UsedMemoryPeak int64 `json:"used_memory_peak" yaml:"used_memory_peak"` // Redis 的内存消耗峰值(以字节为单位)
|
||||||
|
UsedMemoryPeakHuman string `json:"used_memory_peak_human" yaml:"used_memory_peak_human"` // UsedMemoryPeak 可读化表示
|
||||||
|
UsedMemoryPeakPerc string `json:"used_memory_peak_perc" yaml:"used_memory_peak_perc"` // 峰值系统内存使用率
|
||||||
|
UsedMemoryOverhead int64 `json:"used_memory_overhead" yaml:"used_memory_overhead"` // Redis为了维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog
|
||||||
|
UsedMemoryStartup int64 `json:"used_memory_startup" yaml:"used_memory_startup"` // Redis服务器启动时消耗的内存
|
||||||
|
UsedMemoryDataset int64 `json:"used_memory_dataset" yaml:"used_memory_dataset"` // 数据占用的内存大小,即used_memory-used_memory_overhead
|
||||||
|
UsedMemoryDatasetPerc int64 `json:"used_memory_dataset_perc" yaml:"used_memory_dataset_perc"` // 数据占用的内存大小的百分比,100%*(used_memory_dataset/(used_memory-used_memory_startup))
|
||||||
|
AllocatorAllocated int64 `json:"allocator_allocated" yaml:"allocator_allocated"` // allocator_allocated
|
||||||
|
AllocatorActive int64 `json:"allocator_active" yaml:"allocator_active"` // allocator_active
|
||||||
|
AllocatorResident int64 `json:"allocator_resident" yaml:"allocator_resident"` // allocator_resident
|
||||||
|
TotalSystemMemory int64 `json:"total_system_memory" yaml:"total_system_memory"` // 操作系统内存(以字节为单位)
|
||||||
|
TotalSystemMemoryHuman string `json:"total_system_memory_human" yaml:"total_system_memory_human"` // TotalSystemMemory 可读化表示
|
||||||
|
UsedMemoryLua int64 `json:"used_memory_lua" yaml:"used_memory_lua"` // Lua脚本存储占用的内存(以字节为单位)
|
||||||
|
UsedMemoryLuaHuman int64 `json:"used_memory_lua_human" yaml:"used_memory_lua_human"` // UsedMemoryLua 可读化表示
|
||||||
|
UsedMemoryScripts int64 `json:"used_memory_scripts" yaml:"used_memory_scripts"` // Lua脚本使用的内存大小(以字节为单位)
|
||||||
|
UsedMemoryScriptsHuman int64 `json:"used_memory_scripts_human" yaml:"used_memory_scripts_human"` // UsedMemoryScripts 可读化表示
|
||||||
|
NumberOfCachedScripts int64 `json:"number_of_cached_scripts" yaml:"number_of_cached_scripts"` // 缓存的lua脚本数量
|
||||||
|
Maxmemory int64 `json:"maxmemory" yaml:"maxmemory"` // Redis实例的最大内存配置(以字节为单位)
|
||||||
|
MaxmemoryHuman int64 `json:"maxmemory_human" yaml:"maxmemory_human"` // Maxmemory 可读化表示
|
||||||
|
MaxmemoryPolicy string `json:"maxmemory_policy" yaml:"maxmemory_policy"` // 当数据达到最大内存之后的淘汰策略
|
||||||
|
AllocatorFragRatio float64 `json:"allocator_frag_ratio" yaml:"allocator_frag_ratio"` // allocator_frag_ratio
|
||||||
|
AllocatorFragBytes int64 `json:"allocator_frag_bytes" yaml:"allocator_frag_bytes"` // allocator_frag_bytes
|
||||||
|
AllocatorRssRatio float64 `json:"allocator_rss_ratio" yaml:"allocator_rss_ratio"` // allocator_rss_ratio
|
||||||
|
AllocatorRssBytes int64 `json:"allocator_rss_bytes" yaml:"allocator_rss_bytes"` // allocator_rss_bytes
|
||||||
|
RssOverheadRatio float64 `json:"rss_overhead_ratio" yaml:"rss_overhead_ratio"` // rss_overhead_ratio
|
||||||
|
RssOverheadBytes int64 `json:"rss_overhead_bytes" yaml:"rss_overhead_bytes"` // rss_overhead_bytes
|
||||||
|
MemFragmentationRatio float64 `json:"mem_fragmentation_ratio" yaml:"mem_fragmentation_ratio"` // 碎片率,used_memory_rss/ used_memory,正常情况下稍大于1。低于1,Redis实例可能会把部分数据交换到硬盘上,内存交换会严重影响Redis的性能,所以应该增加可用物理内存。大于1.5表示碎片过多。额外碎片的产生是由于Redis释放了内存块,但内存分配器并没有返回内存给操作系统,这个内存分配器是在编译时指定的,可以是libc、jemalloc或者tcmalloc。
|
||||||
|
MemFragmentationBytes int64 `json:"mem_fragmentation_bytes" yaml:"mem_fragmentation_bytes"` // 内存碎片大小(字节表示)
|
||||||
|
MemNotCountedForEvict int64 `json:"mem_not_counted_for_evict" yaml:"mem_not_counted_for_evict"` // mem_not_counted_for_evict
|
||||||
|
MemReplicationBacklog int64 `json:"mem_replication_backlog" yaml:"mem_replication_backlog"` // mem_replication_backlog
|
||||||
|
MemClientsSlaves int64 `json:"mem_clients_slaves" yaml:"mem_clients_slaves"` // mem_clients_slaves
|
||||||
|
MemClientsNormal int64 `json:"mem_clients_normal" yaml:"mem_clients_normal"` // mem_clients_normal
|
||||||
|
MemAofBuffer int64 `json:"mem_aof_buffer" yaml:"mem_aof_buffer"` // mem_aof_buffer
|
||||||
|
MemAllocator string `json:"mem_allocator" yaml:"mem_allocator"` // 内存分配器,Redis支持glibc’s malloc、jemalloc11、tcmalloc几种不同的内存分配器,每个分配器在内存分配和碎片上都有不同的实现。不建议普通管理员修改Redis默认内存分配器,因为这需要完全理解这几种内存分配器的差异,也要重新编译Redis。
|
||||||
|
ActiveDefragRunning int64 `json:"active_defrag_running" yaml:"active_defrag_running"` // defrag:表示内存碎片整理, 0表示没有活动的defrag任务正在运行,1表示有活动的defrag任务正在运行
|
||||||
|
LazyfreePendingObjects int64 `json:"lazyfree_pending_objects" yaml:"lazyfree_pending_objects"` // 延迟释放的挂起对象, 0表示不存在
|
||||||
|
LazyfreedObjects int64 `json:"lazyfreed_objects" yaml:"lazyfreed_objects"` // 延迟释放的对象数量
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user