本章对Redis的系统状态信息(info命令结果)和Redis的所有配置 (包括Standalone、Sentinel、Cluster三种模式)做一个全面的梳理,协助大家分析和解决日常开发和运维中遇到的问题
主要内容如下:
·info系统状态说明。
·Standalone配置说明。
·Sentinel配置说明。
·Cluster配置说明。
1 命令说明
info命令的使用方法有以下三种:
·info:部分Redis系统状态统计信息。
·info all:全部Redis系统状态统计信息。
·info section:某一块的系统状态统计信息,其中section可以忽略大小写。
例如,只对Redis的内存相关统计比较感兴趣,可以执行info memory, 此时section=memory,下面是info memory的结果:
127.0.0.1:6379> info memory
# Memory
used_memory:5209229784
used_memory_human:4.85G
used_memory_rss:6255316992
used_memory_peak:5828761544
used_memory_peak_human:5.43G
used_memory_lua:36864
mem_fragmentation_ratio:1.20
mem_allocator:jemalloc-3.6.0
在运维的时候发现客户端有些异常,可以执行info clients,如以下信息反映了输出缓冲区存在溢出的情况:
127.0.0.1:6379> info clients
# Clients
connected_clients:225
client_longest_output_list:245639
client_biggest_input_buf:0
blocked_clients:0
info all命令包含Redis最全的系统状态信息,下表是info all命令涉及的所有section,其中每个模块名就是我们上面提到的section,例如info Server 是查看Redis服务的基本信息。
模块名 | 模块含义 |
Server | 服务器信息 |
Clients | 客户端信息 |
Memory | 内存信息 |
Persistence | 持久化信息 |
Stats | 全局统计信息 |
Replication | 复制信息 |
CPU | CPU消耗信息 |
Commandstats | 命令统计信息 |
Cluster | 集群信息 |
Keyspace | 数据库键统计信息 |
2 详细说明
下面对每个模块进行详细说明,为了更加方便解释,直接结合线 上一个运行的Redis实例进行说明。
1.Server
下表是info Server模块的统计信息,包含了Redis服务本身的一些信息,例如版本号、运行模式、操作系统的版本、TCP端口等。
2.Clients
下表是info Clients模块的统计信息,包含了连接数、阻塞命令连接数、输入输出缓冲区等相关统计信息。
3.Memory
下表是info Memory模块的统计信息,包含了Redis内存使用、系统内存使用、碎片率、内存分配器等相关统计信息。
4.Persistence
下表是info Persistence模块的统计信息,包含了RDB和AOF两种持久化的一些统计信息。
5.Stats
下表是info Stats模块的统计信息,是Redis的基础统计信息,包含了:连接、命令、网络、过期、同步等很多统计信息。
6.Replication
下表是info Replication模块的统计信息,包含了Redis主从复制的一些统计信息,根据主从节点,统计信息也略有不同
7.CPU
下表是info CPU模块的统计信息,包含了Redis进程和子进程对于CPU消耗的一些统计信息。
8.Commandstats
下表是info Commandstats模块的统计信息,是Redis命令统计信息,包含各个命令的命令名、总次数、总耗时、平均耗时。
9.Cluster
下表是info Cluster模块的统计信息,目前只有一个统计信息,标识当前Redis是否为Cluster模式。
10.Keyspace
下表是info Keyspace模块的统计信息,包含了每个数据库的键值统计信息。
关于这部分命令统计的内容在redis官网有详细的说明,大家可以前往查看https://redis.io/commands/info 包括指令返回值及其含义
相对于很多大型存储系统,Redis的配置不是很多,到了Redis3.0之后有 60多个,虽然还是不多,但是每个配置都有很重要的作用和意义,下面对Redis单机模式下的所有配置进行说明:
1 总体配置
下表是Redis的一些总体配置,例如端口、日志、数据库等。
2 最大内存及策略
下表是Redis内存相关配置
3 AOF相关配置
下表是AOF方式持久化相关配置
4 RDB相关配置
下表是RDB方式持久化相关配置
5 慢查询配置
下表是Redis慢查询相关配置
6 数据结构优化配置
下表是Redis数据结构优化的相关配置
7 复制相关配置
下表是Redis复制相关的配置
8 客户端相关配置
下表是Redis客户端的相关配置
9 安全相关配置
下表是Redis安全的相关配置
Sentinel节点是特殊的Redis节点,有几个特殊的配置,如下表所示:
Cluster节点是特殊的Redis节点,有几个特殊的配置,如下表所示:
以上二/三/四部分的配置redis的配置文件redis.conf里面都有,官方也提供了不同版本redis对应的配置文件,大家可以前往查看,对照明确每个配置的含义即可.https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf(该地址为redis4.0配置文件的地址,比较卡,可能出现登不上的情况,也可直接下载redis对应的版本内含有该配置文件)