INFO Server
redis-cli -c -h 192.168.77.100 -p 7000 INFO Server
# Server
# redis_version:4.0.2 版本号
# redis_mode:standalone 模式,单机还是集群
# os:Linux 3.10.0-693.21.1.el7.x86_64 x86_64 所在服务器的kernel信息
# process_id:19942 系统PID
# run_id:22993c49d6d08889e21f770c787cc1b9d4b6a606 实例的ID,集群节点的标识
# tcp_port:7000 系统端口
# uptime_in_seconds:6382 已经运行的时间/秒
# lru_clock:14004209 LRU计时器/秒
# executable:/usr/local/bin/redis-server 服务执行脚本路径
# config_file:/usr/local/redis/redis_7000.conf 服务配置文件
INFO Clients
redis-cli -c -h 192.168.77.100 -p 7000 INFO Clients
# Clients
connected_clients:1 当前会话数量
blocked_clients:0 被阻塞的会话数量
INFO Memory
redis-cli -c -h 192.168.77.100 -p 7000 INFO Memory
# Memory
# used_memory_human:4.94G 分配的内存总量,最大不会超过maxmemory值
# used_memory_rss_human:5.08G 常驻内存总量,系统角度的内存总量
# used_memory_peak_human:4.94G 峰值内存消耗
# used_memory_peak_perc:100.00% 峰值内存分配百分比,小于100%代表峰值内存需求大于最大内存,而没有完全满足峰值内存需求
# used_memory_dataset_perc:98.48% 实例中用于缓存数据集的内存占比,可以看出其他开销的内存占比
# total_system_memory_human:7.79G 系统总内存
# used_memory_lua_human:37.00K LUA内存消耗
# maxmemory_human:6.52G 最大内存配额
# maxmemory_policy:noeviction 内存不足时的丢弃策略
# mem_fragmentation_ratio:1.03 used_memory_rss和used_memory的比值
# 理想情况下memory_rss稍大于used_memory,因为分配内存空间会有系统开销
# 当memory_rss远大于used_memory,即该比值远大于1,表示存在内存碎片
# 当memory_rss远小于used_memory,即该比值远小于1,表示某些内存被swap,使用swap响应延时就会较高
# 需要进一步分析使用swap的原因,是否有其他进程大量占用了系统内存,导致无法满足redis的需求
INFO Persistence
redis-cli -c -h 192.168.77.100 -p 7000 INFO Persistence
# Persistence
# loading:1 是否正在载入RDB文件,一般宕机恢复的时候会载入
# rdb_changes_since_last_save:2882695 最近一次成功的RDB之后到此刻的数据改变数量
# rdb_bgsave_in_progress:0 是否正在创建RDB,当前BGSAVE子进程是否在运行
# rdb_last_save_time:1524015460 上一次成功创建RDB的UNIX时间戳
# rdb_last_bgsave_status:ok 最近一次创建RDB是否成功,当为err值时,
# 如果配置项stop-writes-on-bgsave-error为yes,redis的写入就会停止
# 可以使用 CONFIG SET stop-writes-on-bgsave-error no规避这个问题
# rdb_last_bgsave_time_sec:-1 上一次成功创建RDB的耗时,-1代表未执行
# rdb_current_bgsave_time_sec:-1 正在创建RDB的时间耗时,如果此时正在执行BGSAVE的话
# rdb_last_cow_size:2809856 上一次的RDB的cow消耗,cow可以在snapshot相关文档中查到定义
# aof_enabled:1 是否开启AOF,1为开启
# aof_rewrite_in_progress:0 是否正在创建AOF,BGREWRITEAOF子进程是否正在运行
# aof_rewrite_scheduled:0 创建RDB后是否重新执行BGREWRITEAOF,因为创建RDB时,BGREWRITEAOF会被阻塞
# aof_last_rewrite_time_sec:-1 上一次成功创建AOF的耗时
# aof_current_rewrite_time_sec:-1 正在创建AOF的时间耗时,如果此时正在执行BGREWRITEAOF的话
# aof_last_bgrewrite_status:ok 最近一次创建AOF是否成功
# aof_last_cow_size:0 上一次的AOF的cow消耗,cow可以在snapshot相关文档中查到定义
# loading_start_time:1524015460 实例宕机恢复时会做loading操作,该项表示loading的UNIX时间戳
# loading_total_bytes:4127506987 实例恢复需要loading的总容量
# loading_loaded_bytes:884874822 实例恢复已经loading的容量
# loading_loaded_perc:21.44 实例恢复完成百分比
# loading_eta_seconds:58 实例恢复剩余时间
INFO Stats
redis-cli -c -h 192.168.77.100 -p 7000 INFO Stats
# Stats
# total_connections_received:7 已经接受的会话连接总量,累计值,间隔的差值可以看出负载
# total_commands_processed:6 已经执行的命令总量,累计值,间隔的差值可以看出负载
# instantaneous_ops_per_sec:0 每秒执行的命令数量/秒
# total_net_input_bytes:217 网络input总量/bytes,累计值
# total_net_output_bytes:3571 网络output总量/bytes,累计值
# instantaneous_input_kbps:0.00 网络瞬时input量/kbps
# instantaneous_output_kbps:0.00 网络瞬时input量/kbps
# rejected_connections:0 达到最大连接数时,被拒绝的会话数量,CONFIG GET maxclients 查看
# expired_keys:0 键过期被自动删除的数量
# evicted_keys:0 内存使用达到maxmemory后被驱逐的键数量
# 内存使用达到maxmemory后,redis自己就会触发自己的oom机制,各种问题
# 根据系统空闲内存,临时加大maxmemory,暂时缓解问题
# 分析键的内存占用情况,从应用层面解决问题,如新功能导致的无用的键的大内存占用
# 如果分析的结果是应用层面没有太大的问题,则表示需要增加内存资源
# keyspace_hits:0 查找键的成功次数
# keyspace_misses:0 查找键的失败次数
# pubsub_channels:0 目前被订阅的频道数量
# pubsub_patterns:0 目前被订阅的模式数量
# latest_fork_usec:57189 上一次fork()操作时间消耗/毫秒
INFO Replication
redis-cli -c -h 192.168.21.102 -p 7002 INFO Replication
# Replication
# role:master 当前实例的角色
# connected_slaves:1 当前实例的slave数量
# slave0:ip=192.168.21.101,port=7001,state=online,offset=165134778,lag=1
# 当前实例的slave信息
# master_repl_offset:165135184
# repl_backlog_first_byte_offset:164086609
# 这两行数据在变化表示同步状态是正常的
INFO CPU
redis-cli -c -h 192.168.77.100 -p 7000 INFO CPU
# CPU
# used_cpu_sys:15.67 耗费的系统CPU
# used_cpu_user:50.56 耗费的用户CPU
# used_cpu_sys_children:10.86 后台进程耗费的系统CPU
# used_cpu_user_children:55.43 后台进程耗费的用户CPU
INFO Cluster
redis-cli -c -h 192.168.21.103 -p 7004 INFO Cluster
# Cluster
# cluster_enabled:1 当前实例是不是集群实例
INFO Keyspace
redis-cli -h 192.168.77.100 -p 7000 INFO Keyspace
# Keyspace
# db0:keys=1592771,expires=183,avg_ttl=992178029
# 第0个库,键数量,过期键数量,平均剩余过期时间/毫秒
# 实验如下:
redis-cli -h 192.168.77.100 -p 7000 flushall
redis-cli -h 192.168.77.100 -p 7000 set k v ex 500
redis-cli -h 192.168.77.100 -p 7000 INFO Keyspace
sleep 1
redis-cli -h 192.168.77.100 -p 7000 INFO Keyspace
redis-cli -h 192.168.77.100 -p 7000 INFO Keyspace;\
sleep 1;\
redis-cli -h 192.168.77.100 -p 7000 INFO Keyspace
CONFIG RESETSTAT
# CONFIG RESETSTAT 会重置 INFO 返回信息中的以下统计项目
# aof_delayed_fsync
# total_connections_received
# total_commands_processed
# rejected_connections
# expired_keys
# keyspace_hits
# keyspace_misses
# latest_fork_usec
redis-cli -h 192.168.77.100 -p 7000 INFO|\
grep -E 'delayed_fsync|connections|command|expired|keyspace|fork'|column -s':' -t
redis-cli -h 192.168.77.100 -p 7000 CONFIG RESETSTAT
redis-cli -h 192.168.77.100 -p 7000 INFO|\
grep -E 'delayed_fsync|connections|command|expired|keyspace|fork'|column -s':' -t
[TOC]