## info命令获取相关信息示例 proxy实现了info命令,支持返回如下信息:Server/Clients/Route/Upstream/Memory/GC/Stats/Upstream-Info,含义分别表示: * Server 表示服务器的信息,包括proxy版本、proxy端口、操作系统类型和版本、虚拟机版本、java版本等 * Clients 会返回连接proxy的客户端连接数 * Route 路由信息,包括路由配置数量和路由配置 * Upstream 后端redis连接数 * Memory 内存 * GC 垃圾回收相关信息 * Stats 统计信息(请求次数、QPS等) * Upstream-Info 后端redis集群的信息,包括后端redis的内存使用率、版本、主从分布情况、slot分布情况等 你可以直接输入info,则返回除了Upstream-Info之外的所有信息,如下: ``` 127.0.0.1:6380> info # Server camellia_redis_proxy_version:v1.0.43 ##proxy版本 redis_version:6.2.5 ##spring actuator默认会使用info命令返回的redis_version字段来做健康检查,这里直接返回一个固定的版本号 available_processors:4 ##cpu核数 netty_boss_thread:1 ##netty的bossGroup的线程数,默认=1 netty_work_thread:4 ##netty的工作线程数,默认=cpu核数 arch:amd64 ##系统架构 os_name:Linux ##操作系统名称 os_version:4.9.0-3-amd64 ##操作系统版本 system_load_average:0.22 ##系统load tcp_port:6380 ##proxy的服务端口 http_console_port:16379 ##proxy的console端口 uptime_in_seconds:295 ##proxy启动时长(秒) uptime_in_days:0 ##proxy启动时长(天) vm_vendor:Oracle Corporation ##虚拟机厂商 vm_name:Java HotSpot(TM) 64-Bit Server VM ##虚拟机名称 vm_version:25.202-b08 ##虚拟机版本 jvm_info:mixed mode ##虚拟机info java_version:1.8.0_202 ##java版本 # Clients connect_clients:14 ##客户端连接数 connect_clients_1_default:10 ##bid=1,bgroup=default的客户端连接数 connect_clients_2_default:4 ##bid=2,bgroup=default的客户端连接数 # Route route_nums:6 ##路由配置数量 route_conf_20_default:redis://***********@10.201.48.171:6379 ##路由配置,表示bid=1以及bgroup=default的配置 route_conf_1_default:redis-cluster://@10.177.0.64:8801,10.177.0.64:8802,10.177.0.65:8803,10.177.0.65:8804,10.177.0.66:8805,10.177.0.66:8806 route_conf_11_default:redis://***********@10.201.48.171:6379 route_conf_27_default:redis://***********@10.201.48.171:6379 route_conf_9_default:redis://***********@10.201.48.171:6379 route_conf_3_default:{"type":"simple","operation":{"read":"redis-cluster://@10.177.0.64:8801,10.177.0.64:8802,10.177.0.65:8803,10.177.0.65:8804,10.177.0.66:8805,10.177.0.66:8806","type":"rw_separate","write":{"resources":["redis-cluster://@10.177.0.64:8801,10.177.0.64:8802,10.177.0.65:8803,10.177.0.65:8804,10.177.0.66:8805,10.177.0.66:8806","redis://***********@10.201.48.171:6379"],"type":"multi"}}} # Upstream upstream_redis_nums:17 ##后端redis连接数 upstream_redis_nums[@10.177.0.69:8803]:4 ##后端redis连接数,具体某个ip:port的连接数 upstream_redis_nums[***********@10.201.48.171:6379]:5 upstream_redis_nums[@10.177.0.64:8802]:4 upstream_redis_nums[@10.177.0.64:8801]:4 # Memory ##proxy的内存信息 free_memory:309393192 free_memory_human:295.06M total_memory:377487360 total_memory_human:360.00M max_memory:7635730432 max_memory_human:7.11G heap_memory_init:536870912 heap_memory_init_human:512.00M heap_memory_used:68094168 heap_memory_used_human:64.94M heap_memory_max:7635730432 heap_memory_max_human:7.11G heap_memory_committed:377487360 heap_memory_committed_human:360.00M non_heap_memory_init:2555904 non_heap_memory_init_human:2.44M non_heap_memory_used:32339792 non_heap_memory_used_human:30.84M non_heap_memory_max:-1 non_heap_memory_max_human:-1B non_heap_memory_committed:33882112 non_heap_memory_committed_human:32.31M # GC ##GC相关信息 young_gc_name:G1 Young Generation ##young gc的回收器类型 young_gc_collection_count:6 ##young gc累计次数 young_gc_collection_time:97 ##young gc累计时间 old_gc_name:G1 Old Generation ##old gc的回收器类型 old_gc_collection_count:0 ##old gc累计次数 old_gc_collection_time:0 ##old gc累计时长 # Stats commands_count:4158008 ##proxy启动至今的请求数 read_commands_count:928037 ##proxy启动至今的读请求数 write_commands_count:3229970 ##proxy启动至今的写请求数 avg_commands_qps:34183.18 ##proxy启动至今的平均QPS avg_read_commands_qps:7629.44 ##proxy启动至今的平均读QPS avg_write_commands_qps:26553.74 ##proxy启动至今的平均写QPS monitor_interval_seconds:60 ##统计周期,单位秒 last_commands_qps:29304.43 ##proxy上一个统计周期的QPS last_read_commands_qps:6426.05 ##proxy上一个统计周期的读QPS last_write_commands_qps:22878.38 ##proxy上一个统计周期的写QPS ``` 你也可以只打印其中一项,比如只想看内存信息,则如下(info后面的参数是忽略大小写的): ``` 127.0.0.1:6380> info memory # Memory free_memory:309393192 free_memory_human:295.06M total_memory:377487360 total_memory_human:360.00M max_memory:7635730432 max_memory_human:7.11G heap_memory_init:536870912 heap_memory_init_human:512.00M heap_memory_used:68094168 heap_memory_used_human:64.94M heap_memory_max:7635730432 heap_memory_max_human:7.11G heap_memory_committed:377487360 heap_memory_committed_human:360.00M non_heap_memory_init:2555904 non_heap_memory_init_human:2.44M non_heap_memory_used:32339792 non_heap_memory_used_human:30.84M non_heap_memory_max:-1 non_heap_memory_max_human:-1B non_heap_memory_committed:33882112 non_heap_memory_committed_human:32.31M ``` 特别的,Upstream-Info必须是指定之后才能返回(此时返回的是默认路由),如下: ``` 127.0.0.1:6381> info upstream-info # Upstream-Info route_conf:{"type":"shading","operation":{"operationMap":{"0-2-4":{"read":"redis-sentinel-slaves://@127.0.0.1:26379/master1?withMaster=true","type":"rw_separate","write":"redis-sentinel://@127.0.0.1:26379/master1"},"1-3-5":"redis-cluster://@10.189.28.62:7008,10.189.28.60:7001,10.189.28.62:7011"},"bucketSize":6}} upstream_cluster_count:3 ##本路由后端redis集群数量 upstream0_url:redis-cluster://@10.189.28.62:7008,10.189.28.60:7001,10.189.28.62:7011 ##本路由包含的redis集群地址1 upstream1_url:redis-sentinel://@127.0.0.1:26379/master1 ##本路由包含的redis集群地址2 upstream2_url:redis-sentinel-slaves://@127.0.0.1:26379/master1?withMaster=true ##本路由包含的redis集群地址3 ## Upstream0 ##本路由包含的某个redis集群相关的信息 url:redis-cluster://@10.189.28.62:7008,10.189.28.60:7001,10.189.28.62:7011 ##地址,这是一个redis-cluster ### redis-cluster-info cluster_state:ok ##集群状态 cluster_slots_assigned:16384 ##集群分配的slot数量 cluster_slots_ok:16384 ##集群状态ok的slot数量 cluster_slots_pfail:0 ##pfail状态的slot数量 cluster_slots_fail:0 ##fail状态的slot数量 cluster_known_nodes:6 ##集群的节点数 cluster_size:3 ##集群大小,即主节点数量 cluster_safety:yes ##如果master没有slave,或者有一个ip的master节点占了所有master节点的一半以上,则认为集群是不安全的,参考:https://redis.io/topics/cluster-spec cluster_maxmemory:9663676416 ##集群总内存大小 cluster_maxmemory_human:9.00G ##集群总内存大小(可读性) cluster_used_memory:2304452928 ##集群已用内存大小 cluster_used_memory_human:2.15G ##集群已用内存大小(可读性) cluster_memory_used_rate:0.2384654482205709 ##集群内存使用率 cluster_memory_used_rate_human:23.87% ##集群内存使用率(百分比) ### redis-cluster-node-info ##集群节点信息(主从节点分别情况、slot分布情况、内存使用情况) node0:master=10.189.28.62:7008@17008,slave=[10.189.28.60:7003@17003],slots=5461-10922,maxmemory=3.00G,used_memory=733.38M,memory_used_rate=23.87% node1:master=10.189.28.60:7001@17001,slave=[10.189.28.62:7010@17010],slots=10923-16383,maxmemory=3.00G,used_memory=733.38M,memory_used_rate=23.87% node2:master=10.189.28.62:7011@17011,slave=[10.189.28.62:7009@17009],slots=0-5460,maxmemory=3.00G,used_memory=733.38M,memory_used_rate=23.87% ### redis-node-info #### node0 ##节点信息 master_url=10.189.28.62:7008@17008 ##节点url redis_version:4.0.9 ##redis版本 used_memory:768150976 ##已用内存大小 used_memory_human:732.57M ##已用内存大小(可读性) maxmemory:3221225472 ##最大内存 maxmemory_human:3.00G ##最大内存(可读性) memory_used_rate:0.2384654482205709 ##内存使用率 memory_used_rate_human:23.85% ##内存使用率(百分比) maxmemory_policy:allkeys-lru ##key淘汰策略 hz:10 ##hz,提高它的值将会占用更多的cpu,当然相应的redis将会更快的处理同时到期的许多key,以及更精确的去处理超时 role:master ##节点类型 connected_slaves:1 ##从节点数量 slave0:ip=10.189.28.60,port=7003,state=online,offset=88682163709,lag=0 ##从节点信息 db0:keys=3639485,expires=3639482,avg_ttl=1621629354933212 ##key的分布情况(数量、带ttl的数量、平均ttl) #### node1 master_url=10.189.28.60:7001@17001 redis_version:4.0.9 used_memory:768150976 used_memory_human:3.77M maxmemory:3221225472 maxmemory_human:3.00G memory_used_rate:0.2384654482205709 memory_used_rate_human:23.85% maxmemory_policy:allkeys-lru hz:10 role:master connected_slaves:1 slave0:ip=10.189.28.62,port=7010,state=online,offset=253642106463,lag=0 db0:keys=297,expires=294,avg_ttl=62496349 #### node2 master_url=10.189.28.62:7011@17011 redis_version:4.0.9 used_memory:768150976 used_memory_human:732.05M maxmemory:3221225472 maxmemory_human:3.00G memory_used_rate:0.2382984757423401 memory_used_rate_human:23.83% maxmemory_policy:allkeys-lru hz:10 role:master connected_slaves:1 slave0:ip=10.189.28.62,port=7009,state=online,offset=186569832085,lag=1 db0:keys=3634796,expires=3634791,avg_ttl=1621629354943862 ## Upstream1 url:redis-sentinel://@127.0.0.1:26379/master1 ### redis-node-info master_url:@127.0.0.1:6380 redis_version:6.0.6 used_memory:2437680 used_memory_human:2.32M maxmemory:3221225472 maxmemory_human:3.00G memory_used_rate:0.23873232305049896 memory_used_rate_human:23.87% maxmemory_policy:noeviction hz:10 role:master connected_slaves:1 slave0:ip=127.0.0.1,port=6379,state=online,offset=570473,lag=1 db0:keys=12231212,expires=3634791,avg_ttl=123444 ## Upstream2 url:redis-sentinel-slaves://@127.0.0.1:26379/master1?withMaster=true ### redis-node-info master_url:@127.0.0.1:6380 redis_version:6.0.6 used_memory:2437680 used_memory_human:2.32M maxmemory:3.00G maxmemory_human:3.00G memory_used_rate:0.23873232305049896 memory_used_rate_human:23.87% maxmemory_policy:noeviction hz:10 role:master connected_slaves:1 slave0:ip=127.0.0.1,port=6379,state=online,offset=570473,lag=1 db0:keys=12231212,expires=3634791,avg_ttl=123444 ``` 此外,如果proxy上配置了多条路由,那么你可以指定bid和bgroup返回特定路由的后端upstream信息,如下(例子中返回了bid=1以及bgroup=default的后端信息): ``` 127.0.0.1:6381> info upstream-info 1 default # Upstream-Info route_conf:redis://@127.0.0.1:6379 bid:1 bgroup:default upstream_cluster_count:1 upstream0_url:redis://@127.0.0.1:6379 ## Upstream0 url:redis://@127.0.0.1:6379 ### redis-node-info redis_version:6.0.6 used_memory:2082800 used_memory_human:1.99M maxmemory:0 maxmemory_human:0B memory_used_rate:0.0 memory_used_rate_human:0.00% maxmemory_policy:noeviction hz:10 role:master connected_slaves:0 db0:keys=39,expires=0,avg_ttl=0 ``` 除了使用redis协议来获取info信息外,你还可以基于console的http-api来执行并获取info信息: 你可以访问 http://127.0.0.1:16379/info 来获取信息(支持json格式化),如下: * txt形式: * json格式化: 你也可以使用section参数,如下: * txt形式: * json格式化: 也支持upstream-info,如下: * txt形式: * json格式化: