本章将对Redis的系统状态信息(info命令结果)和Redis的所有配置(包括Standalone、Sentinel、Cluster三种模式)做一个全面的梳理,希望本章能够成为Redis配置统计字典,协助大家分析和解决日常开发和运维中遇到的问题,主要内容如下:

□ info系统状态说明。

□ Sentinel配置说明。

□ Cluster配置说明。

1.info系统状态说明

1.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最全的系统状态信息,表14-1是 info all命令涉及的所有 section,其中每个模块名就是我们上面提到的section,例如info Server是查看Redis服务的基本信息。

表14-1 info 命令所有的 section

模块名

模块含义

Server

服务器信息

Clients

客户端信息

Memory

内存信息

Persistence

持久化信息

Stats

全局统计信息

Replication

复制信息

CPU

CPU消耗信息

Commandstats

命令统计信息

Cluster

集群信息

Keyspace

数据库键统计信息

1.2 详细说明

下面将对每个模块进行详细说明,为了更加方便解释,我们直接结合线上一个运行的Redis实例进行说明。

  1.Server

  表14-2是 info Server模块的统计信息,包含了 Redis服务本身的一些信息,例如版本号、运行模式、操作系统的版本、TCP端口等。

表 14-2 info Server 模块统计信息

属性名

属性值

属性描述

redis version

3.0.7

Redis 服务版本

redis_git_sha1

00000000

Git SHA1

redis_git_dirty

0

Git dirty flag

redis_build_id

186eba9451cf9390

Redis build id

redis_mode

cluster

运行模式,分为: Cluster 、 Sentinel 、Standalone

os

Linux2.6.18-274.el5 x 86_64

Redis 所在机器的操作系统

arch_bits

64

架构(32或64位)

multiplexing api

epoll

Redis 所使用的事件处理机制

gcc_version

4.1.2

编译Redis时所使用的GCC版本

process_id

31524

Redis 服务进程的 PID

run_id

fd8b97739c469526f 640b8895a5084d669ed1 51f

Redis 服务的标识符

tcp_port

6384

监听端口

uptime_in_seconds

9753347

自Redis服务启动以来,运行的秒数

uptime_in_days

112

自Redis服务启动以来,运行的天数

hz

10

serverCron每秒运行次数

lru_clock

16388503

以分钟为单位进行自增的时钟 ,用于LRU管理

config_file

/opt/cachecloud/conf/ redis-cluster-6384 .conf

Redis 的配置文件

  2.Client

  表14-3是info Clients 模块的统计信息,包含了连接数、阻塞命令连接数、输入输出缓冲区等相关统计信息。

表 14-3 info Clients 模块统计信息

属性名

属性值

属性描述

connected_clients

262

当前客户端连接数

client_longestoutput_list

0

当前所有输出缓冲区中队列对象个数的最大值

client_biggest_input_buf

0

当前所有输入缓冲区中占用的最大容量

blocked_clients

0

正在等待阻塞命令(例如 BLPOP等)的客户端数量

  3.Memory

  表14-4是 info Memory 模块的统计信息,包含了 Redis 内存使用、系统内存使用、碎片率、内存分配器等相关统计信息。

表 14-4 info Memory 模块统计信息

属性名

属性值

属性描述

used_memory

183150904

Redis分配器分配的内存总量,也就是内部存储的所有数据内存占用量

used_memory_human

174.67M

以可读的格式返回 used_memory

used_memory_rss

428621824

从操作系统的角度, Redis 进程占用的物理内存总量

used_memory_peak

522768352

内存使用的最大值,表示 used_memory 的峰值

used_memory_peak_human

498.55M

以可读的格式返回 used_memory_peak

used_memory_lua

35840

Lua引擎所消耗的内存大小

mem_fragmentation_ratio

2.34

used_memory_rss/used_memory比值,表示内存碎片率

mem_allocator

jemalloc-3.6.0

Redis所使用的内存分配器。默认为: jemalloc

  4.Persistence

  表 14-5是 info Persistence 模块的统计信息,包含了RDB和 AOF两种持久化的一些统计信息。

表 14-5  info Persistence 模块统计信息

属性名

属性值

属性描述

loading

0

是否在加载持久化文件。0否,1是

rdb_changes_since_last_save

53308858

自上次RDB后,Redis 数据改动条数

rdb_bgsave_in_progress

0

标识RDB的bgsave 操作是否进行中。 0否,1是

rdb_last_save_time

1456376460

上次bgsave操作的时间戳

rdb_last_bgsave_status

ok

上次bgsave操作状态

rdb_last_bgsave_time_sec

3

上次bgsave操作使用的时间(单位是秒)

rdb_current_bgsave_time_sec

-1

如果bgsave操作正在进行,则记录当前 bgsave 操作使用的时间(单位是秒)

aof_enabled

1

是否开启了AOF功能。0否,1 是

aof_rewrite_in_progress

0

标识AOF的rewrite操作是否在进行中。 0 否,1是

aof_rewrite_scheduled

0

标识是否将要在RDB的bgsave 操作结束后执行 AOF rewrite 操作

aof_lastrewrite_time_sec

0

上次AOF rewrite 操作使用的时间(单位是秒)

aof_current_rewrite_time_sec

-1

如果rewrite操作正在进行,则记录当前AOF rewrite所使用的时间(单位是秒)

aof_last_bgrewrite_status

ok

上次AOF重写操作的状态

aof_last_write_status

ok

上次AOF写磁盘的结果

aof_current_size

186702421

AOF当前尺寸(单位是字节)

aof_base_size

134279710

AOF上次启动或 rewrite 的尺寸(单位是字节)

aof_buffer_length

0

AOF buffer 的大小

aof_rewrite_buffer_length

0

AOF rewrite buffer 的大小

aof_pending_bio_fsync

0

后台IO队列中等待 fsync任务的个数

aof_delayed_fsync

64

延迟的 fsync计数器

  5.Stats

  表 14-6是 info Stats 模块的统计信息,是 Redis的基础统计信息,包含了:连接、命令、网络、过期、同步等很多统计信息。

表 14-6  info Stats 模块统计信息

属性名

属性值

属性描述

total_connections_received

495967

连接过的客户端总数

total_commands_processed

5139857171

执行过的命令总数

instantaneous_ops_per_sec

511

每秒处理命令条数

total_net_input_bytes

282961395316

输入总网络流量(以字节为单位)

total_net_output_bytes

1760503612586

输出总网络流量(以字节为单位)

instantaneous_input_kbps

28.24

每秒输入字节数

instantaneous_output_kbps

234.90

每秒输出字节数

rejected_connections

0

拒绝的连接个数

sync_full

4

主从完全同步成功次数

sync_partial_ok

0

主从部分同步成功次数

sync_partial_err

0

主从部分同步失败次数

expired_keys

45534039

过期的 key 数量

evicted_keys

0

剔除(超过了maxmemory后)的key 数量

keyspace_hits

3923837939

命中次数

keyspace_misses

1078922155

不命中次数

pubsub_channels

0

当前使用中的频道数量

pubsub_patterns

0

当前使用中的模式数量

latest_fork_usec

16194

最近一次fork操作消耗的时间(微秒)

migrate_cached_sockets

0

记录当前Redis正在进行migrate 操作的目标 Redis个数。

例如RedisA分别向RedisB和C执行 migrate 操作,那么这个值就是2

  6.Replication

  表 14-7是 info Replication 模块的统计信息,包含了 Redis主从复制的一些统计信息,根据主从节点,统计信息也略有不同。

表 14-7  info Replication 模块统计信息

角色

属性名

属性值

属性描述

通用配置

role

master|slave

节点的角色

主节点

connected_slaves

1

连接的从节点个数

slaveO

slave0:ip=10.10.xx. 160,port=6382,state =online,offset=426978948465, lag=1

连接的从节点信息

master_repl_offset

426978955146

主节点偏移量

从节点

master_host

10.10.xx.63

主节点ip

master_port

6387

主节点端口

master_link_status

up

与主节点的连接状态

master_last_io_seconds_ago

0

主节点最后与从节点的通信时间间隔,单位为秒

master_sync_in__progress

0

从节点是否正在全量同步主节点RDB文件。

slave_repl_offset

426978956171

复制偏移量

slave_priority

100

从节点优先级

slave_read_only

1

从节点是否只读

connected_slaves

0

连接从节点个数

master_repl_offset

0

当前从节点作为其他节点的主节点时的复制偏移量

通用配置

repl_backlog_active

1

复制缓冲区状态

repl_back_log_size

10000000

复制缓冲区尺寸 (单位:字节)

repl_backlog_first_byte_o ffset

426968955147

复制缓冲区起始偏移量,标识当前缓冲区可用范围

repl_backlog_histlen

10000000

标识复制缓冲区已存有效数据长度

  7.CPU

  表 14-8是 info CPU模块的统计信息,包含了 Redis进程和子进程对于CPU消耗的一些统计信息。

表 14-8  info CPU模块统计信息

属性名

属性值

属性描述

used_cpu_sys

31957.30

Redis主进程在内核态所占用的CPU时钟总和

used_cpu_user

72484.27

Redis主进程在用户态所占用的CPU时钟总和

used_cpu_sys_children

121.49

Redis子进程在内核态所占用的CPU时钟总和

used_cpu_user_children

195.13

Redis子进程在用户态所占用的CPU时钟总和

  8.Commandstat

  表 14-9是 info Commands tats模块的统计信息,是 Redis命令统计信息,包含各个命令的命令名、总次数、总耗时、平均耗时。

表 14-9  info Commandstats模块统计信息

属性名

属性值

属性描述

cmdstat_get

calls=3738730699,usec= 11054972404,usec_per_call=2.96

get命令调用总次数、总耗时 、平均耗时(单位:微秒)

cmdstat_set

calls=50174458,usec=323143686,usec_per_call=6.44

set命令调用总次数、总耗时,平

均耗时(单位:微秒)

  9.Cluster

  表 14-10是 info Cluster模块的统计信息,目前只有一个统计信息,标识当前Redis是否为Cluster模式。

表 14-10  info Cluster模块统计信息

属性名

属性值

属性描述

cluster enabled

1

节点是否为cluster 模式。1 是,0否

  10. Keyspace

  表 14-11 是 info Keyspace模块的统计信息,包含了每个数据库的键值统计信息。

表 14-11 info Keyspace模块统计信息

属性名

属性值

属性描述

dbO

db0:keys= 106430,expires=56107,avg_ttl=60283952

当前数据库key总数,带有过期时间的key总数,平均存活时间

2.Sentinel配置说明和分析

  Sentinel节点是特殊的Redis节点,有几个特殊的配置,如表14-21所示。

表 14-21  Redis Sentinel节点配置说明

参数名

含义

默认值

可选值

可否支持sentinel set配置热生效

sentinel monitor

<master-name> <ip> <port> <quorum>

定义监控的主节点名、ip、port、主观下线票数

sentinel monitor my

master 127.0.0.1 6379 2

自定义 masterName

实际的 ip:port 票数

支持

<quorum>

sentinel down-after-millisecon ds <master-name> <times>

Sentinel 判定节点不可达的毫秒数

Sentinel down-after­milliseconds mymaster 30 000

整数

支持

sentinel parallel-syncs <master-name>

<nums>

在执行故障转移时,最多有多少个从服务器同时对新的主服务器进行同步

sentinel parallel-syncs mymaster 1

大于0,不超过从服务器个数

支持

sentinel failover-timeout <master-name>

<times>

故障迁移超时时间

sentinel failover-timeout mymaster 180 000

整数

支持

sentinel auth-pass <master-name><password>

主节点密码

主节点密码

支持

sentinel notifi­cation-script <master-name> <script-path>

故障转移期间脚本

通知

脚本文件路径

支持

sentinel client-reconfig-script <master-name> <script-path>

故障转移成功后脚

本通知

脚本文件路径

支持

3.Cluster配置说明和分析

  Cluster节点是特殊的Redis节点,有几个特殊的配置,如表14-22所示。

表 14-22 Redis Cluster配置说明

参数名

含义

默认值

可选值

可否支持config set配置热生效

cluster-node-timeout

集群节点超时时间(单位:毫秒)

15000

整数

可以

cluster-migration-barrier

主从节点切换需要的从节点数最小个数

1

整数

可以

cluster-slave-validity-factor

从节点有效性 判断因子,当从节点与主节点最后通信时间超过(cluster-node-timeout * slave-validity-factor) + repl-ping-slave-period 时,对应从节点不具备故障转移资格,防止断线时间过长的从节点进行故障转移。设置为0 表示从节点永不过期

10

整数

可以

cluster-require-full-coverage

集群是否需要所有的 slot 都分配

给在线节点,才能正常访问

yes

yes|no

可以

cluster-enabled

是否开启集群模式

yes

yes|no

不可以

cluster-config-file

集群配置文件名称

nodes.conf

nodes-{port}.conf

不可以

Redis配置统计字典的更多相关文章

  1. 14. Redis配置统计字典

    14. Redis配置统计字典14.1 info系统状态说明14.1.1 命令说明14.1.2 详细说明14.2 standalone配置说明和分析14.2.1 总体配置14.2.2 最大内存及策略1 ...

  2. Redis配置主从复制

    Redis配置主从复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作环境介绍 1>.操作系统环境 [root@node101.yinzhengjie.org.cn ...

  3. Redis配置讲解及实战

    前言 Redis是一个开源的内存k-v数据库,同时也可用作缓存,消息队列.支持多种数据类型,如字符串,列表,字典,集合,有序集合. 演示环境 $ uname -a Darwin Darwin Kern ...

  4. NoSQL 之 Redis配置与优化

    NoSQL 之 Redis配置与优化 1.关系数据库与非关系型数据库概述 2.关系数据库与非关系型数据库区别 3.非关系型数据库产生背景 4.Redis简介 5.Redis安装部署 6.Redis 命 ...

  5. NoSQL之Redis配置与优化

    NoSQL之Redis配置与优化 目录 NoSQL之Redis配置与优化 一.关系数据库和非关系数据库 1. 关系型数据库 2. 非关系型数据库 3. 非关系型数据库产生背景 4. 关系型数据库和非关 ...

  6. redis 配置

    一 Redis 支持写的指令 Redis大概的命令如下:set setnx setex appendincr decr rpush lpush rpushx lpushx linsert lset r ...

  7. redis配置详解

    ##redis配置详解 # Redis configuration file example. # # Note that in order to read the configuration fil ...

  8. Redis配置集群一(window)

    因为接下来的项目要使用到redis作为我们项目的缓存,所以就花了一天时间研究了一下redis的一些用法,因为没转linux虚拟机,所以就决定先研究一下windows版本的redis集群.主要是redi ...

  9. redis 配置应用(摘)

    Redis可以在没有配置文件的情况下通过内置的配置来启动,但是这种启动方式只适用于开发和测试. 合理的配置Redis的方式是提供一个Redis配置文件,这个文件通常叫做redis.conf. redi ...

随机推荐

  1. mysql注入getshell

    0x00 利用条件 root权限 secure_file_priv=为空或者在网站根目录下(网站根目录为d:\www,secure_file_priv=d:\也可以) 知道绝对路径 gpc关闭,这个应 ...

  2. ES6新增数组的一些思考和使用

    ES6数组的新增 伪数组转换为数组的两种方法 Array.from()把一个伪数组转换为一个真正的数组 伪数组:有下标和length,但是不能使用数组方法 let lis = document.que ...

  3. zip密码破解小脚本

    zip密码破解小脚本 博主: 逍遥子 发布时间:2018 年 05 月 31 日 2745次浏览 1 条评论 1074字数 分类: kali 专栏 首页 正文 分享到:    文件源码 import ...

  4. ocalhost kernel: [244840.301449] nf_conntrack: nf_conntrack: table full, dropping packet

    nf_conntrack: table full, dropping packet. 终结篇   "连接跟踪表已满,开始丢包"!相信不少用iptables的同学都会见过这个错误信息 ...

  5. 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)

    一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)     概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...

  6. 7.12-7.19 id、w、who、last、lastb、lastlog

    7.12-7.19 id.w.who.last.lastb.lastlog 目录 7.12 id:显示用户与用户组的信息 7.13 w:显示已登录用户信息 7.14 who:显示已登录用户信息 显示最 ...

  7. Ansible_描述角色结构

    一.利用角色构造ansible playbook 1.What's 角色 1️⃣:Ansible角色提供了一种方法,让用户能以通用的方式更加轻松地重复利用Ansible代码. 我们可以在标准化目录结构 ...

  8. [转载]屏幕PPI、分辨率到底需要多大才能满足?

    屏幕PPI.分辨率到底需要多大才能满足? 郝蛋儿 江湖骗子 13 人赞同了该文章 最近想买一个43寸的电视,720P和1080P差了500大洋.我不禁纠结了起来.看网上争得面红耳赤,有的人说不如108 ...

  9. 回车与换行的区别:CRLF、CR、LF

    引言 以下是 MySQL 8 导出数据的窗口,导出数据时需要选择记录分隔符,这就需要你明白 CRLF.CR 和 LF 分别代表什么,有何区别,否则可能导出数据会出现莫名其米的问题. 名词解释 CR:C ...

  10. H.265视频编码与技术全析(上)

    H.265视频编码与技术全析(上) 一. 概述 作为新一代视频编解码格式,H.265得到越来越广泛的应用.不久之前,苹果公司在翘首期盼中发布了iPhone6,该款手机较之以往的iPhone,不仅仅只是 ...