20210609 redis中info命令使用
Posted 陈如水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20210609 redis中info命令使用相关的知识,希望对你有一定的参考价值。
info命令使用总结(属性名,属性值,属性描述)
模块名 模块含义
Server 服务器信息
Clients 客户端信息
Memory 内存信息
Persistence 持久化信息
Stats 全局统计信息(缓存命中率)
Replication 复制信息
CPU CPU消耗信息
Commandstats 命令统计信息
Cluster 集群信息
Keyspace 数据库键统计信息
一、info Server
包含了Redis服务本身的一些信息,例如版本号、运行模式、操作系统的版本、TCP端口等。
redis-test:0>info server
"# Server
redis_version:5.0.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c15635ea8e16946a
redis_mode:standalone
os:Linux 2.6.32-504.23.4.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:sync-builtin
gcc_version:4.4.7
process_id:576150
run_id:c90380b6bc2814e8018a94d9a2b4e44be80faf79
tcp_port:50346
uptime_in_seconds:1023294
uptime_in_days:11
hz:10
configured_hz:10
lru_clock:12611922
executable:/opt/soft/redis50/bin/redis-server
config_file:/work/redis50346/redis50346.conf
"
1,redis_mode 运行模式,redis运行模式分为:Cluster.Sentinel.Standalone;
2,tcp_port 监听的端口;
3,uptime_in_seconds和uptime_in_days 自Redis服务启动以来,运行的秒数和天数;
4,config_file Redis的配置文件的位置;
二、info Clients
info Clients模块的统计信息,包含了连接数、阻塞命令连接数、输入输出缓冲区等相关统计信息。
如何查看当前的连接信息或者说有多少连接?
Redis>info clients
{
"client_recent_max_output_buffer": 0,
"blocked_clients": 0,
"connected_clients": 51,
"client_recent_max_input_buffer": 2
}
1,连接数:和连接池的配置有关系;
2,阻塞客户端连接数:blocked_clients,一般是执行了list数据类型的BLPOP或者BRPOP命令引起的,这个值最好应该为0。
3,CLIENT 常用命令
CLIENT LIST 获取客户端列表; name字段表示当前连接的名称。
CLIENT SETNAME 设置当前连接点redis的名称;
CLIENT GETNAME 查看当前连接的名称;
CLIENT KILL ip:port 杀死指定连接;
三、info Memory
info Memory模块的统计信息,包含了Redis内存使用、系统内存使用、碎片率、内存分配器等相关统计信息。
Redis>info Memory
{
"mem_clients_normal": 1789214,
"rss_overhead_ratio": 0.2,
"used_memory_peak_human": "1.04G",
"maxmemory_human": "2.00G",
"used_memory_dataset_perc": "2.68%",
"mem_not_counted_for_evict": 1320,
"used_memory_peak_perc": "99.66%",
"allocator_frag_ratio": 1.0,
"used_memory_lua_human": "37.00K",
"used_memory": 1113726728,
"used_memory_scripts": 0,
"maxmemory": 2147483648,
"used_memory_scripts_human": "0B",
"total_system_memory_human": "251.89G",
"allocator_rss_ratio": 1.01,
"allocator_frag_bytes": 633000,
"number_of_cached_scripts": 0,
"mem_replication_backlog": 1073741824,
"lazyfree_pending_objects": 0,
"allocator_rss_bytes": 10297344,
"mem_aof_buffer": 1320,
"rss_overhead_bytes": -897171456,
"allocator_allocated": 1113782104,
"mem_clients_slaves": 49694,
"maxmemory_policy": "volatile-lru",
"used_memory_startup": 791456,
"used_memory_human": "1.04G",
"active_defrag_running": 0,
"used_memory_dataset": 29816508,
"allocator_active": 1114415104,
"used_memory_lua": 37888,
"used_memory_overhead": 1083910220,
"total_system_memory": 270467923968,
"mem_allocator": "jemalloc-5.1.0",
"mem_fragmentation_bytes": -886164808,
"used_memory_peak": 1117551160,
"allocator_resident": 1124712448,
"used_memory_rss": 227540992,
"mem_fragmentation_ratio": 0.2,
"used_memory_rss_human": "217.00M"
}
1,maxmemory 和 maxmemory_human 最大内存2G;
2,maxmemory_policy 内存淘汰策略;
3,mem_fragmentation_ratio 内存碎片率
四、info Persistence
info Persistence模块的统计信息,包含了RDB和AOF两种持久化的一些统计信息。
redis-test:0>info Persistence
"# Persistence
loading:0
rdb_changes_since_last_save:1213741
rdb_bgsave_in_progress:0
rdb_last_save_time:1622201389
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:278528
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
aof_current_size:167953757
aof_base_size:0
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
"
五、info Stats
info Stats模块的统计信息,是Redis的基础统计信息,包含了:连接、命令、网络、过期、同步等很多统计信息
1,拒绝连接数(rejected_connections)也需要关注,这个值理想状态是0。如果大于0,说明创建的连接数超过了maxclients,需要排查原因。是redis连接池配置不合理还是连接这个redis实例的服务过多等。
Redis>info Stats
{
"active_defrag_key_hits": 0,
"rejected_connections": 0,
"pubsub_patterns": 0,
"expired_time_cap_reached_count": 0,
"sync_partial_ok": 0,
"migrate_cached_sockets": 0,
"keyspace_misses": 144363,
"total_net_output_bytes": 47355923253,
"active_defrag_hits": 0,
"slave_expires_tracked_keys": 0,
"expired_stale_perc": 0.0,
"instantaneous_ops_per_sec": 6011,
"total_commands_processed": 373073062,
"latest_fork_usec": 269,
"total_connections_received": 24517,
"sync_full": 1,
"active_defrag_misses": 0,
"pubsub_channels": 1,
"expired_keys": 0,
"active_defrag_key_misses": 0,
"total_net_input_bytes": 11914643391,
"evicted_keys": 0,
"instantaneous_input_kbps": 186.43,
"instantaneous_output_kbps": 737.4,
"sync_partial_err": 1,
"keyspace_hits": 249967588
}
六、info Replication
info Replication模块的统计信息,包含了Redis主从复制的一些统计信息,根据主从节点,统计信息也略有不同
redis-test:0>info Replication
"# Replication
role:master
connected_slaves:1
slave0:ip=10.166.254.236,port=50346,state=online,offset=389738337,lag=0
master_replid:a4df37f43f87291a91a87a3ebc99bbdb9841f77c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:389738337
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:134217728
repl_backlog_first_byte_offset:255520610
repl_backlog_histlen:134217728
"
七、info CPU
info CPU模块的统计信息,包含了Redis进程和子进程对于CPU消耗的一些统计信息。
redis-test:0>info CPU
"# CPU
used_cpu_sys:203.586050
used_cpu_user:407.154103
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
"
八、info Commandstats
info Commandstats模块的统计信息,是Redis命令统计信息,包含各个命令的命令名、总次数、总耗时、平均耗时
redis-test:0>info Commandstats
"# Commandstats
cmdstat_client:calls=390,usec=11789,usec_per_call=30.23
cmdstat_type:calls=78,usec=174,usec_per_call=2.23
cmdstat_ttl:calls=75,usec=88,usec_per_call=1.17
cmdstat_scan:calls=1261,usec=5642591,usec_per_call=4474.70
cmdstat_slowlog:calls=17905,usec=116448,usec_per_call=6.50
cmdstat_select:calls=232,usec=136,usec_per_call=0.59
cmdstat_publish:calls=1511708,usec=4376704,usec_per_call=2.90
cmdstat_exists:calls=599638,usec=455262,usec_per_call=0.76
cmdstat_get:calls=4664,usec=10175,usec_per_call=2.18
cmdstat_auth:calls=24512,usec=37469,usec_per_call=1.53
cmdstat_keys:calls=1,usec=3939,usec_per_call=3939.00
cmdstat_config:calls=1478,usec=70899,usec_per_call=47.97
cmdstat_ping:calls=3091664,usec=1093731,usec_per_call=0.35
cmdstat_replconf:calls=1025063,usec=598074,usec_per_call=0.58
cmdstat_del:calls=620681,usec=560526,usec_per_call=0.90
cmdstat_subscribe:calls=3,usec=8,usec_per_call=2.67
cmdstat_memory:calls=24,usec=244,usec_per_call=10.17
cmdstat_info:calls=352140,usec=16445560,usec_per_call=46.70
cmdstat_psync:calls=1,usec=461,usec_per_call=461.00
cmdstat_set:calls=713137,usec=1082454,usec_per_call=1.52
"
九、info Cluster
info Cluster模块的统计信息,目前只有一个统计信息,标识当前Redis是否为Cluster模式。
redis-test:0>info cluster
"# Cluster
cluster_enabled:0
"
十、info Keyspace
info Keyspace模块的统计信息,包含了每个数据库的键值统计信息。
redis-test:0>info Keyspace
"# Keyspace
db0:keys=147186,expires=0,avg_ttl=0
"
1,redis键空间的状态监控
1)键个数(keys): redis实例包含的键个数。建议控制在1kw内;单实例键个数过大,可能导致过期键的回收不及时。统计当前节点key的数量(多少个缓存数据)。
2)设置有生存时间的键个数:(keys_expires): 是纯缓存或业务的过期长,都建议对键设置TTL; 避免业务的死键问题. (expires字段)
3)估算设置生存时间键的平均寿命: (avg_ttl): redis会抽样估算实例中设置TTL键的平均时长,单位毫秒。如果无TTL键或在Slave则avg_ttl一直为0
2,info中keyspace显示的key的数量与dbsize显示的数量不同?
因为redis是一个集群,存在很多节点,keyspace显示的是一个节点的key的数量,而dbsize显示的是所有结点的key的数量。图中redis使用了三个节点,dbsize差不多正好是keyspace的3倍。
以上是关于20210609 redis中info命令使用的主要内容,如果未能解决你的问题,请参考以下文章