Redis 是广为流行的开源“高性能”内存数据结构服务器,PostgreSQL 的好搭子。 Pigsty 中的 Redis 版本锁定在最后一个使用 BSD 协议的 7.2.6 版本。
This is the multi-page printable view of this section. Click here to print.
模块:REDIS
1 - 集群配置
概念
Redis的实体概念模型与PostgreSQL几乎相同,同样包括 集群(Cluster) 与 实例(Instance) 的概念。注意这里的Cluster指的不是Redis原生集群方案中的集群。
REDIS模块与PGSQL模块核心的区别在于,Redis通常采用 单机多实例 部署,而不是 PostgreSQL 的 1:1 部署:一个物理/虚拟机节点上通常会部署 多个 Redis实例,以充分利用多核CPU。因此配置和管理Redis实例的方式与PGSQL稍有不同。
在Pigsty管理的Redis中,节点完全隶属于集群,即目前尚不允许在一个节点上部署两个不同集群的Redis实例,但这并不影响您在在一个节点上部署多个独立 Redis 主从实例。当然这样也会有一些局限性,例如在这种情况下您就无法为同一个节点上的不同实例指定不同的密码了。
身份参数
Redis 身份参数 是定义Redis集群时必须提供的信息,包括:
名称 | 属性 | 说明 | 例子 |
---|---|---|---|
redis_cluster |
必选,集群级别 | 集群名 | redis-test |
redis_node |
必选,节点级别 | 节点号 | 1 ,2 |
redis_instances |
必选,节点级别 | 实例定义 | { 6001 : {} ,6002 : {}} |
redis_cluster
:Redis集群名称,作为集群资源的顶层命名空间。redis_node
:Redis节点标号,整数,在集群内唯一,用于区分不同节点。redis_instances
:JSON对象,Key为实例端口号,Value为包含实例其他配置JSON对象。
工作模式
Redis有三种不同的工作模式,由 redis_mode
参数指定:
standalone
:默认的独立主从模式cluster
:Redis原生分布式集群模式sentinel
:哨兵模式,可以为主从模式的 Redis 提供高可用能力
下面给出了三种Redis集群的定义样例:
- 一个1节点,一主一从的 Redis Standalone 集群:
redis-ms
- 一个1节点,3实例的Redis Sentinel集群:
redis-sentinel
- 一个2节点,6实例的的 Redis Cluster集群:
redis-cluster
redis-ms: # redis 经典主从集群
hosts: { 10.10.10.10: { redis_node: 1 , redis_instances: { 6379: { }, 6380: { replica_of: '10.10.10.10 6379' } } } }
vars: { redis_cluster: redis-ms ,redis_password: 'redis.ms' ,redis_max_memory: 64MB }
redis-meta: # redis 哨兵 x 3
hosts: { 10.10.10.11: { redis_node: 1 , redis_instances: { 26379: { } ,26380: { } ,26381: { } } } }
vars:
redis_cluster: redis-meta
redis_password: 'redis.meta'
redis_mode: sentinel
redis_max_memory: 16MB
redis_sentinel_monitor: # primary list for redis sentinel, use cls as name, primary ip:port
- { name: redis-ms, host: 10.10.10.10, port: 6379 ,password: redis.ms, quorum: 2 }
redis-test: # redis 原生集群: 3主 x 3从
hosts:
10.10.10.12: { redis_node: 1 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
10.10.10.13: { redis_node: 2 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
vars: { redis_cluster: redis-test ,redis_password: 'redis.test' ,redis_mode: cluster, redis_max_memory: 32MB }
局限性
- 一个节点只能属于一个 Redis 集群,这意味着您不能将一个节点同时分配给两个不同的Redis集群。
- 在每个 Redis 节点上,您需要为 Redis实例 分配唯一的端口号,避免端口冲突。
- 通常同一个 Reids 集群会使用同一个密码,但一个 Redis节点上的多个 Redis 实例无法设置不同的密码(因为 redis_exporter 只允许使用一个密码0
- Redis Cluster自带高可用,而Redis主从的高可用需要在 Sentinel 中额外进行手工配置:因为我们不知道您是否会部署 Sentinel。
- 好在配置 Redis 主从实例的高可用非常简单,可以通过Sentinel进行配置,详情请参考管理-设置Redis主从高可用
2 - 参数列表
Pigsty 中有 21 个关于 Redis 模块的配置参数:
参数 | 类型 | 级别 | 注释 |
---|---|---|---|
redis_cluster |
string | C | Redis数据库集群名称,必选身份参数 |
redis_instances |
dict | I | Redis节点上的实例定义 |
redis_node |
int | I | Redis节点编号,正整数,集群内唯一,必选身份参数 |
redis_fs_main |
path | C | Redis主数据目录,默认为 /data |
redis_exporter_enabled |
bool | C | Redis Exporter 是否启用? |
redis_exporter_port |
port | C | Redis Exporter监听端口 |
redis_exporter_options |
string | C/I | Redis Exporter命令参数 |
redis_safeguard |
bool | G/C/A | 禁止抹除现存的Redis |
redis_clean |
bool | G/C/A | 初始化Redis是否抹除现存实例 |
redis_rmdata |
bool | G/C/A | 移除Redis实例时是否一并移除数据? |
redis_mode |
enum | C | Redis集群模式:sentinel,cluster,standalone |
redis_conf |
string | C | Redis配置文件模板,sentinel 除外 |
redis_bind_address |
ip | C | Redis监听地址,默认留空则会绑定主机IP |
redis_max_memory |
size | C/I | Redis可用的最大内存 |
redis_mem_policy |
enum | C | Redis内存逐出策略 |
redis_password |
password | C | Redis密码,默认留空则禁用密码 |
redis_rdb_save |
string[] | C | Redis RDB 保存指令,字符串列表,空数组则禁用RDB |
redis_aof_enabled |
bool | C | Redis AOF 是否启用? |
redis_rename_commands |
dict | C | Redis危险命令重命名列表 |
redis_cluster_replicas |
int | C | Redis原生集群中每个主库配几个从库? |
redis_sentinel_monitor |
master[] | C | Redis哨兵监控的主库列表,只在哨兵集群上使用? |
默认参数
Redis 模块的默认参数定义于 roles/redis/defaults/main.yml
#redis_cluster: <集群> # Redis数据库集群名称,必选身份参数
#redis_node: 1 <节点> # Redis节点上的实例定义
#redis_instances: {} <节点> # Redis节点编号,正整数,集群内唯一,必选身份参数
redis_fs_main: /data # Redis主数据目录,默认为 `/data`
redis_exporter_enabled: true # Redis Exporter 是否启用?
redis_exporter_port: 9121 # Redis Exporter监听端口
redis_exporter_options: '' # Redis Exporter命令参数
redis_safeguard: false # 禁止抹除现存的Redis
redis_clean: true # 初始化Redis是否抹除现存实例
redis_rmdata: true # 移除Redis实例时是否一并移除数据?
redis_mode: standalone # Redis集群模式:sentinel,cluster,standalone
redis_conf: redis.conf # Redis配置文件模板,sentinel 除外
redis_bind_address: '0.0.0.0' # Redis监听地址,默认留空则会绑定主机IP
redis_max_memory: 1GB # Redis可用的最大内存
redis_mem_policy: allkeys-lru # Redis内存逐出策略
redis_password: '' # Redis密码,默认留空则禁用密码
redis_rdb_save: ['1200 1'] # Redis RDB 保存指令,字符串列表,空数组则禁用RDB
redis_aof_enabled: false # Redis AOF 是否启用?
redis_rename_commands: {} # Redis危险命令重命名列表
redis_cluster_replicas: 1 # Redis原生集群中每个主库配几个从库?
redis_sentinel_monitor: [] # Redis哨兵监控的主库列表,只在哨兵集群上使用
redis_cluster
参数名称: redis_cluster
, 类型: string
, 层次:C
身份参数,必选参数,必须显式在集群层面配置,将用作集群内资源的命名空间。
需要遵循特定命名规则:[a-z][a-z0-9-]*
,以兼容不同约束对身份标识的要求,建议使用redis-
作为集群名前缀。
redis_node
参数名称: redis_node
, 类型: int
, 层次:I
Redis节点序列号,身份参数,必选参数,必须显式在节点(Host)层面配置。
自然数,在集群中应当是唯一的,用于区别与标识集群内的不同节点,从0或1开始分配。
redis_instances
参数名称: redis_instances
, 类型: dict
, 层次:I
当前 Redis 节点上的 Redis 实例定义,必选参数,必须显式在节点(Host)层面配置。
内容为JSON KV对象格式。Key为数值类型端口号,Value为该实例特定的JSON配置项。
redis-test: # redis native cluster: 3m x 3s
hosts:
10.10.10.12: { redis_node: 1 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
10.10.10.13: { redis_node: 2 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
vars: { redis_cluster: redis-test ,redis_password: 'redis.test' ,redis_mode: cluster, redis_max_memory: 32MB }
每一个Redis实例在对应节点上监听一个唯一端口,实例配置项中replica_of
用于设置一个实例的上游主库地址,构建主从复制关系。
redis_instances:
6379: {}
6380: { replica_of: '10.10.10.13 6379' }
6381: { replica_of: '10.10.10.13 6379' }
redis_fs_main
参数名称: redis_fs_main
, 类型: path
, 层次:C
Redis使用的主数据盘挂载点,默认为/data
,Pigsty会在该目录下创建redis
目录,用于存放Redis数据。
所以实际存储数据的目录为 /data/redis
,该目录的属主为操作系统用户 redis
,内部结构详情请参考 FHS:Redis
redis_exporter_enabled
参数名称: redis_exporter_enabled
, 类型: bool
, 层次:C
是否启用Redis监控组件 Redis Exporter?
默认启用,在每个Redis节点上部署一个,默认监听 redis_exporter_port
9121
端口。所有本节点上 Redis 实例的监控指标都由它负责抓取。
redis_exporter_port
参数名称: redis_exporter_port
, 类型: port
, 层次:C
Redis Exporter监听端口,默认值为:9121
redis_exporter_options
参数名称: redis_exporter_options
, 类型: string
, 层次:C/I
传给 Redis Exporter 的额外命令行参数,会被渲染到 /etc/defaut/redis_exporter
中,默认为空字符串。
redis_safeguard
参数名称: redis_safeguard
, 类型: bool
, 层次:G/C/A
Redis的防误删安全保险开关:打开后无法使用剧本抹除正在运行的 Redis 实例。
默认值为 false
,如果设置为 true
,那么当剧本遇到正在运行的 Redis 实例时,会中止初始化/抹除的操作,避免误删。
redis_clean
参数名称: redis_clean
, 类型: bool
, 层次:G/C/A
Redis清理开关:是否在初始化的过程中抹除运行中的Redis实例?默认值为:true
。
剧本 redis.yml
会在执行时抹除具有相同定义的现有 Redis 实例,这样可以保证剧本的幂等性。
如果您不希望 redis.yml
这样做,可以将此参数设置为 false
,那么当剧本遇到正在运行的 Redis 实例时,会中止初始化/抹除的操作,避免误删。
如果安全保险参数 redis_safeguard
已经打开,那么本参数的优先级低于该参数。
redis_rmdata
参数名称: redis_rmdata
, 类型: bool
, 层次:G/C/A
移除 Redis 实例的时候,是否一并移除 Redis 数据目录?默认为 true
。
数据目录包含了 Redis 的 RDB与AOF文件,如果不抹除它们,那么新拉起的 Redis 实例将会从这些备份文件中加载数据。
redis_mode
参数名称: redis_mode
, 类型: enum
, 层次:C
Redis集群的工作模式,有三种选项:standalone
, cluster
, sentinel
,默认值为 standalone
standalone
:默认,独立的Redis主从模式cluster
: Redis原生集群模式sentinel
:Redis高可用组件:哨兵
当使用standalone
模式时,Pigsty会根据 replica_of
参数设置Redis主从复制关系。
当使用cluster
模式时,Pigsty会根据 redis_cluster_replicas
参数使用所有定义的实例创建原生Redis集群。
redis_conf
参数名称: redis_conf
, 类型: string
, 层次:C
Redis 配置模板路径,Sentinel除外。
默认值:redis.conf
,这是一个模板文件,位于 roles/redis/templates/redis.conf
。
如果你想使用自己的 Redis 配置模板,你可以将它放在 templates/
目录中,并设置此参数为模板文件名。
注意: Redis Sentinel 使用的是另一个不同的模板文件,即 roles/redis/templates/redis-sentinel.conf
。
redis_bind_address
参数名称: redis_bind_address
, 类型: ip
, 层次:C
Redis服务器绑定的IP地址,空字符串将使用配置清单中定义的主机名。
默认值:0.0.0.0
,这将绑定到此主机上的所有可用 IPv4 地址。
在生产环境中出于安全性考虑,建议仅绑定内网 IP,即将此值设置为空字符串 ''
redis_max_memory
参数名称: redis_max_memory
, 类型: size
, 层次:C/I
每个 Redis 实例使用的最大内存配置,默认值:1GB
。
redis_mem_policy
参数名称: redis_mem_policy
, 类型: enum
, 层次:C
Redis 内存回收策略,默认值:allkeys-lru
,
noeviction
:内存达限时不保存新值:当使用主从复制时仅适用于主库allkeys-lru
:保持最近使用的键;删除最近最少使用的键(LRU)allkeys-lfu
:保持频繁使用的键;删除最少频繁使用的键(LFU)volatile-lru
:删除带有真实过期字段的最近最少使用的键volatile-lfu
:删除带有真实过期字段的最少频繁使用的键allkeys-random
:随机删除键以为新添加的数据腾出空间volatile-random
:随机删除带有过期字段的键volatile-ttl
:删除带有真实过期字段和最短剩余生存时间(TTL)值的键。
详情请参阅Redis内存回收策略。
redis_password
参数名称: redis_password
, 类型: password
, 层次:C/N
Redis 密码,空字符串将禁用密码,这是默认行为。
注意,由于 redis_exporter 的实现限制,您每个节点只能设置一个 redis_password
。这通常不是问题,因为 pigsty 不允许在同一节点上部署两个不同的 Redis 集群。
请在生产环境中使用强密码
redis_rdb_save
参数名称: redis_rdb_save
, 类型: string[]
, 层次:C
Redis RDB 保存指令,使用空列表则禁用 RDB。
默认值是 ["1200 1"]
:如果最近20分钟至少有1个键更改,则将数据集转储到磁盘。
详情请参考 Redis持久化。
redis_aof_enabled
参数名称: redis_aof_enabled
, 类型: bool
, 层次:C
启用 Redis AOF 吗?默认值是 false
,即不使用 AOF。
redis_rename_commands
参数名称: redis_rename_commands
, 类型: dict
, 层次:C
重命名 Redis 危险命令,这是一个 k:v 字典:old: new
,old是待重命名的命令名称,new是重命名后的名字。
默认值:{}
,你可以通过设置此值来隐藏像 FLUSHDB
和 FLUSHALL
这样的危险命令,下面是一个例子:
{
"keys": "op_keys",
"flushdb": "op_flushdb",
"flushall": "op_flushall",
"config": "op_config"
}
redis_cluster_replicas
参数名称: redis_cluster_replicas
, 类型: int
, 层次:C
在 Redis 原生集群中,应当为一个 Master/Primary 实例配置多少个从库?默认值为: 1
,即每个主库配一个从库。
redis_sentinel_monitor
参数名称: redis_sentinel_monitor
, 类型: master[]
, 层次:C
Redis哨兵监控的主库列表,只在哨兵集群上使用。每个待纳管的主库定义方式如下所示:
redis_sentinel_monitor: # primary list for redis sentinel, use cls as name, primary ip:port
- { name: redis-src, host: 10.10.10.45, port: 6379 ,password: redis.src, quorum: 1 }
- { name: redis-dst, host: 10.10.10.48, port: 6379 ,password: redis.dst, quorum: 1 }
其中,name
,host
是必选参数,port
,password
,quorum
是可选参数,quorum
用于设置判定主库失效所需的法定人数数,通常大于哨兵实例数的一半(默认为1)。
3 - 预置剧本
REDIS模块提供了两个剧本,用于拉起/销毁 传统主从Redis集群/节点/实例:
redis.yml
:初始Redis集群/节点/实例。redis-rm.yml
:移除Redis集群/节点/实例
redis.yml
用于初始化 Redis 的 redis.yml
剧本包含以下子任务:
redis_node : 初始化redis节点
- redis_install : 安装redis & redis_exporter
- redis_user : 创建操作系统用户 redis
- redis_dir : 配置 redis的FHS目录结构
redis_exporter : 配置 redis_exporter 监控
- redis_exporter_config : 生成redis_exporter配置
- redis_exporter_launch : 启动redis_exporter
redis_instance : 停止并禁用redis集群/节点/实例
- redis_check : 检查redis实例是否存在
- redis_clean : 清除现有的redis实例
- redis_config : 生成redis实例配置
- redis_launch : 启动redis实例
redis_register : 将redis注册到基础设施中
redis_ha : 配置redis哨兵
redis_join : 加入redis集群
示例:使用Redis剧本初始化Redis集群
redis-rm.yml
用于卸载 Redis 的 redis-rm.yml
剧本包含以下子任务:
register : 从prometheus中移除监控目标
redis_exporter : 停止并禁用redis_exporter
redis : 停止并禁用redis集群/节点/实例
redis_data : 移除redis数据(rdb, aof)
redis_pkg : 卸载redis & redis_exporter软件包
4 - 管理预案
以下是一些常见的 Redis 管理任务 SOP(预案):
更多问题请参考 FAQ:REDIS。
初始化Redis
您可以使用 redis.yml
剧本来初始化 Redis 集群、节点、或实例:
# 初始化集群内所有 Redis 实例
./redis.yml -l <cluster> # 初始化 redis 集群
# 初始化特定节点上的所有 Redis 实例
./redis.yml -l 10.10.10.10 # 初始化 redis 节点
# 初始化特定 Redis 实例: 10.10.10.11:6379
./redis.yml -l 10.10.10.11 -e redis_port=6379 -t redis
你也可以使用包装脚本命令行脚本来初始化:
bin/redis-add redis-ms # 初始化 redis 集群 'redis-ms'
bin/redis-add 10.10.10.10 # 初始化 redis 节点 '10.10.10.10'
bin/redis-add 10.10.10.10 6379 # 初始化 redis 实例 '10.10.10.10:6379'
下线Redis
您可以使用 redis-rm.yml
剧本来初始化 Redis 集群、节点、或实例:
# 下线 Redis 集群 `redis-test`
./redis-rm.yml -l redis-test
# 下线 Redis 集群 `redis-test` 并卸载 Redis 软件包
./redis-rm.yml -l redis-test -e redis_uninstall=true
# 下线 Redis 节点 10.10.10.13 上的所有实例
./redis-rm.yml -l 10.10.10.13
# 下线特定 Redis 实例 10.10.10.13:6379
./redis-rm.yml -l 10.10.10.13 -e redis_port=6379
你也可以使用包装脚本来下线 Redis 集群/节点/实例:
bin/redis-rm redis-ms # 下线 redis 集群 'redis-ms'
bin/redis-rm 10.10.10.10 # 下线 redis 节点 '10.10.10.10'
bin/redis-rm 10.10.10.10 6379 # 下线 redis 实例 '10.10.10.10:6379'
重新配置Redis
您可以部分执行 redis.yml
剧本来重新配置 Redis 集群、节点、或实例:
./redis.yml -l <cluster> -t redis_config,redis_launch
请注意,redis 无法在线重载配置,您只能使用 launch 任务进行重启来让配置生效。
使用Redis客户端
使用 redis-cli
访问 Reids 实例:
$ redis-cli -h 10.10.10.10 -p 6379 # <--- 使用 Host 与 Port 访问对应 Redis 实例
10.10.10.10:6379> auth redis.ms # <--- 使用密码验证
OK
10.10.10.10:6379> set a 10 # <--- 设置一个Key
OK
10.10.10.10:6379> get a # <--- 获取 Key 的值
"10"
Redis提供了redis-benchmark
工具,可以用于Redis的性能评估,或生成一些负载用于测试。
redis-benchmark -h 10.10.10.13 -p 6379
手工设置Redis从库
https://redis.io/commands/replicaof/
# 将一个 Redis 实例提升为主库
> REPLICAOF NO ONE
"OK"
# 将一个 Redis 实例设置为另一个实例的从库
> REPLICAOF 127.0.0.1 6799
"OK"
设置Redis主从高可用
Redis独立主从集群可以通过 Redis 哨兵集群配置自动高可用,详细用户请参考 Sentinel官方文档
以四节点沙箱环境为例,一套 Redis Sentinel 集群 redis-meta
,可以用来管理很多套独立 Redis 主从集群。
以一主一从的Redis普通主从集群 redis-ms
为例,您需要在每个 Sentinel 实例上,使用 SENTINEL MONITOR
添加目标,并使用 SENTINEL SET
提供密码,高可用就配置完毕了。
# 对于每一个 sentinel,将 redis 主服务器纳入哨兵管理:(26379,26380,26381)
$ redis-cli -h 10.10.10.11 -p 26379 -a redis.meta
10.10.10.11:26379> SENTINEL MONITOR redis-ms 10.10.10.10 6379 1
10.10.10.11:26379> SENTINEL SET redis-ms auth-pass redis.ms # 如果启用了授权,需要配置密码
如果您想移除某个由 Sentinel 管理的 Redis 主从集群,使用 SENTINEL REMOVE <name>
移除即可。
您可以使用定义在 Sentinel 集群上的 redis_sentinel_monitor
参数,来自动配置管理哨兵监控管理的主库列表。
redis_sentinel_monitor: # 需要被监控的主库列表,端口、密码、法定人数(应为1/2以上的哨兵数量)为可选参数
- { name: redis-src, host: 10.10.10.45, port: 6379 ,password: redis.src, quorum: 1 }
- { name: redis-dst, host: 10.10.10.48, port: 6379 ,password: redis.dst, quorum: 1 }
使用以下命令刷新 Redis 哨兵集群上的纳管主库列表:
./redis.yml -l redis-meta -t redis-ha # 如果您的 Sentinel 集群名称不是 redis-meta,请在这里替换。
5 - 监控告警
监控面板
REDIS 模块提供了 3 个监控面板
- Redis Overview:redis 集群概览
- Redis Cluster:redis 集群详情
- Redis Instance:redis 实例详情
监控
Pigsty 提供了三个与 REDIS
模块有关的监控仪表盘:
Redis Overview
Redis Overview:关于所有Redis集群/实例的详细信息
Redis Cluster
Redis Cluster:关于单个Redis集群的详细信息
Redis Instance
Redis Instance: 关于单个Redis实例的详细信息
告警规则
Pigsty 针对 redis 提供了以下六条预置告警规则,定义于 files/prometheus/rules/redis.yml
RedisDown
:redis 实例不可用RedisRejectConn
:redis 实例拒绝连接RedisRTHigh
:redis 实例响应时间过高RedisCPUHigh
:redis 实例 CPU 使用率过高RedisMemHigh
:redis 实例内存使用率过高RedisQPSHigh
:redis 实例 QPS 过高
#==============================================================#
# Error #
#==============================================================#
# redis down triggers a P0 alert
- alert: RedisDown
expr: redis_up < 1
for: 1m
labels: { level: 0, severity: CRIT, category: redis }
annotations:
summary: "CRIT RedisDown: {{ $labels.ins }} {{ $labels.instance }} {{ $value }}"
description: |
redis_up[ins={{ $labels.ins }}, instance={{ $labels.instance }}] = {{ $value }} == 0
http://g.pigsty/d/redis-instance?from=now-5m&to=now&var-ins={{$labels.ins}}
# redis reject connection in last 5m
- alert: RedisRejectConn
expr: redis:ins:conn_reject > 0
labels: { level: 0, severity: CRIT, category: redis }
annotations:
summary: "CRIT RedisRejectConn: {{ $labels.ins }} {{ $labels.instance }} {{ $value }}"
description: |
redis:ins:conn_reject[cls={{ $labels.cls }}, ins={{ $labels.ins }}][5m] = {{ $value }} > 0
http://g.pigsty/d/redis-instance?from=now-10m&to=now&viewPanel=88&fullscreen&var-ins={{ $labels.ins }}
#==============================================================#
# Latency #
#==============================================================#
# redis avg query response time > 160 µs
- alert: RedisRTHigh
expr: redis:ins:rt > 0.00016
for: 1m
labels: { level: 1, severity: WARN, category: redis }
annotations:
summary: "WARN RedisRTHigh: {{ $labels.cls }} {{ $labels.ins }}"
description: |
pg:ins:query_rt[cls={{ $labels.cls }}, ins={{ $labels.ins }}] = {{ $value }} > 160µs
http://g.pigsty/d/redis-instance?from=now-10m&to=now&viewPanel=97&fullscreen&var-ins={{ $labels.ins }}
#==============================================================#
# Saturation #
#==============================================================#
# redis cpu usage more than 70% for 1m
- alert: RedisCPUHigh
expr: redis:ins:cpu_usage > 0.70
for: 1m
labels: { level: 1, severity: WARN, category: redis }
annotations:
summary: "WARN RedisCPUHigh: {{ $labels.cls }} {{ $labels.ins }}"
description: |
redis:ins:cpu_all[cls={{ $labels.cls }}, ins={{ $labels.ins }}] = {{ $value }} > 60%
http://g.pigsty/d/redis-instance?from=now-10m&to=now&viewPanel=43&fullscreen&var-ins={{ $labels.ins }}
# redis mem usage more than 70% for 1m
- alert: RedisMemHigh
expr: redis:ins:mem_usage > 0.70
for: 1m
labels: { level: 1, severity: WARN, category: redis }
annotations:
summary: "WARN RedisMemHigh: {{ $labels.cls }} {{ $labels.ins }}"
description: |
redis:ins:mem_usage[cls={{ $labels.cls }}, ins={{ $labels.ins }}] = {{ $value }} > 80%
http://g.pigsty/d/redis-instance?from=now-10m&to=now&viewPanel=7&fullscreen&var-ins={{ $labels.ins }}
#==============================================================#
# Traffic #
#==============================================================#
# redis qps more than 32000 for 5m
- alert: RedisQPSHigh
expr: redis:ins:qps > 32000
for: 5m
labels: { level: 2, severity: INFO, category: redis }
annotations:
summary: "INFO RedisQPSHigh: {{ $labels.cls }} {{ $labels.ins }}"
description: |
redis:ins:qps[cls={{ $labels.cls }}, ins={{ $labels.ins }}] = {{ $value }} > 16000
http://g.pigsty/d/redis-instance?from=now-10m&to=now&viewPanel=96&fullscreen&var-ins={{ $labels.ins }}
6 - 指标列表
REDIS
模块包含有 275 类可用监控指标。
Metric Name | Type | Labels | Description |
---|---|---|---|
ALERTS | Unknown | cls , ip , level , severity , instance , category , ins , alertname , job , alertstate |
N/A |
ALERTS_FOR_STATE | Unknown | cls , ip , level , severity , instance , category , ins , alertname , job |
N/A |
redis:cls:aof_rewrite_time | Unknown | cls , job |
N/A |
redis:cls:blocked_clients | Unknown | cls , job |
N/A |
redis:cls:clients | Unknown | cls , job |
N/A |
redis:cls:cmd_qps | Unknown | cls , cmd , job |
N/A |
redis:cls:cmd_rt | Unknown | cls , cmd , job |
N/A |
redis:cls:cmd_time | Unknown | cls , cmd , job |
N/A |
redis:cls:conn_rate | Unknown | cls , job |
N/A |
redis:cls:conn_reject | Unknown | cls , job |
N/A |
redis:cls:cpu_sys | Unknown | cls , job |
N/A |
redis:cls:cpu_sys_child | Unknown | cls , job |
N/A |
redis:cls:cpu_usage | Unknown | cls , job |
N/A |
redis:cls:cpu_usage_child | Unknown | cls , job |
N/A |
redis:cls:cpu_user | Unknown | cls , job |
N/A |
redis:cls:cpu_user_child | Unknown | cls , job |
N/A |
redis:cls:fork_time | Unknown | cls , job |
N/A |
redis:cls:key_evict | Unknown | cls , job |
N/A |
redis:cls:key_expire | Unknown | cls , job |
N/A |
redis:cls:key_hit | Unknown | cls , job |
N/A |
redis:cls:key_hit_rate | Unknown | cls , job |
N/A |
redis:cls:key_miss | Unknown | cls , job |
N/A |
redis:cls:mem_max | Unknown | cls , job |
N/A |
redis:cls:mem_usage | Unknown | cls , job |
N/A |
redis:cls:mem_usage_max | Unknown | cls , job |
N/A |
redis:cls:mem_used | Unknown | cls , job |
N/A |
redis:cls:net_traffic | Unknown | cls , job |
N/A |
redis:cls:qps | Unknown | cls , job |
N/A |
redis:cls:qps_mu | Unknown | cls , job |
N/A |
redis:cls:qps_realtime | Unknown | cls , job |
N/A |
redis:cls:qps_sigma | Unknown | cls , job |
N/A |
redis:cls:rt | Unknown | cls , job |
N/A |
redis:cls:rt_mu | Unknown | cls , job |
N/A |
redis:cls:rt_sigma | Unknown | cls , job |
N/A |
redis:cls:rx | Unknown | cls , job |
N/A |
redis:cls:size | Unknown | cls , job |
N/A |
redis:cls:tx | Unknown | cls , job |
N/A |
redis:env:blocked_clients | Unknown | job |
N/A |
redis:env:clients | Unknown | job |
N/A |
redis:env:cmd_qps | Unknown | cmd , job |
N/A |
redis:env:cmd_rt | Unknown | cmd , job |
N/A |
redis:env:cmd_time | Unknown | cmd , job |
N/A |
redis:env:conn_rate | Unknown | job |
N/A |
redis:env:conn_reject | Unknown | job |
N/A |
redis:env:cpu_usage | Unknown | job |
N/A |
redis:env:cpu_usage_child | Unknown | job |
N/A |
redis:env:key_evict | Unknown | job |
N/A |
redis:env:key_expire | Unknown | job |
N/A |
redis:env:key_hit | Unknown | job |
N/A |
redis:env:key_hit_rate | Unknown | job |
N/A |
redis:env:key_miss | Unknown | job |
N/A |
redis:env:mem_usage | Unknown | job |
N/A |
redis:env:net_traffic | Unknown | job |
N/A |
redis:env:qps | Unknown | job |
N/A |
redis:env:qps_mu | Unknown | job |
N/A |
redis:env:qps_realtime | Unknown | job |
N/A |
redis:env:qps_sigma | Unknown | job |
N/A |
redis:env:rt | Unknown | job |
N/A |
redis:env:rt_mu | Unknown | job |
N/A |
redis:env:rt_sigma | Unknown | job |
N/A |
redis:env:rx | Unknown | job |
N/A |
redis:env:tx | Unknown | job |
N/A |
redis:ins | Unknown | cls , id , instance , ins , job |
N/A |
redis:ins:blocked_clients | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:clients | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cmd_qps | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis:ins:cmd_rt | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis:ins:cmd_time | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis:ins:conn_rate | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:conn_reject | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_sys | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_sys_child | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_usage | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_usage_child | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_user | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:cpu_user_child | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:key_evict | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:key_expire | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:key_hit | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:key_hit_rate | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:key_miss | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:lsn_rate | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:mem_usage | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:net_traffic | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:qps | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:qps_mu | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:qps_realtime | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:qps_sigma | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:rt | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:rt_mu | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:rt_sigma | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:rx | Unknown | cls , ip , instance , ins , job |
N/A |
redis:ins:tx | Unknown | cls , ip , instance , ins , job |
N/A |
redis:node:ip | Unknown | cls , ip , instance , ins , job |
N/A |
redis:node:mem_alloc | Unknown | cls , ip , job |
N/A |
redis:node:mem_total | Unknown | cls , ip , job |
N/A |
redis:node:mem_used | Unknown | cls , ip , job |
N/A |
redis:node:qps | Unknown | cls , ip , job |
N/A |
redis_active_defrag_running | gauge | cls , ip , instance , ins , job |
active_defrag_running metric |
redis_allocator_active_bytes | gauge | cls , ip , instance , ins , job |
allocator_active_bytes metric |
redis_allocator_allocated_bytes | gauge | cls , ip , instance , ins , job |
allocator_allocated_bytes metric |
redis_allocator_frag_bytes | gauge | cls , ip , instance , ins , job |
allocator_frag_bytes metric |
redis_allocator_frag_ratio | gauge | cls , ip , instance , ins , job |
allocator_frag_ratio metric |
redis_allocator_resident_bytes | gauge | cls , ip , instance , ins , job |
allocator_resident_bytes metric |
redis_allocator_rss_bytes | gauge | cls , ip , instance , ins , job |
allocator_rss_bytes metric |
redis_allocator_rss_ratio | gauge | cls , ip , instance , ins , job |
allocator_rss_ratio metric |
redis_aof_current_rewrite_duration_sec | gauge | cls , ip , instance , ins , job |
aof_current_rewrite_duration_sec metric |
redis_aof_enabled | gauge | cls , ip , instance , ins , job |
aof_enabled metric |
redis_aof_last_bgrewrite_status | gauge | cls , ip , instance , ins , job |
aof_last_bgrewrite_status metric |
redis_aof_last_cow_size_bytes | gauge | cls , ip , instance , ins , job |
aof_last_cow_size_bytes metric |
redis_aof_last_rewrite_duration_sec | gauge | cls , ip , instance , ins , job |
aof_last_rewrite_duration_sec metric |
redis_aof_last_write_status | gauge | cls , ip , instance , ins , job |
aof_last_write_status metric |
redis_aof_rewrite_in_progress | gauge | cls , ip , instance , ins , job |
aof_rewrite_in_progress metric |
redis_aof_rewrite_scheduled | gauge | cls , ip , instance , ins , job |
aof_rewrite_scheduled metric |
redis_blocked_clients | gauge | cls , ip , instance , ins , job |
blocked_clients metric |
redis_client_recent_max_input_buffer_bytes | gauge | cls , ip , instance , ins , job |
client_recent_max_input_buffer_bytes metric |
redis_client_recent_max_output_buffer_bytes | gauge | cls , ip , instance , ins , job |
client_recent_max_output_buffer_bytes metric |
redis_clients_in_timeout_table | gauge | cls , ip , instance , ins , job |
clients_in_timeout_table metric |
redis_cluster_connections | gauge | cls , ip , instance , ins , job |
cluster_connections metric |
redis_cluster_current_epoch | gauge | cls , ip , instance , ins , job |
cluster_current_epoch metric |
redis_cluster_enabled | gauge | cls , ip , instance , ins , job |
cluster_enabled metric |
redis_cluster_known_nodes | gauge | cls , ip , instance , ins , job |
cluster_known_nodes metric |
redis_cluster_messages_received_total | gauge | cls , ip , instance , ins , job |
cluster_messages_received_total metric |
redis_cluster_messages_sent_total | gauge | cls , ip , instance , ins , job |
cluster_messages_sent_total metric |
redis_cluster_my_epoch | gauge | cls , ip , instance , ins , job |
cluster_my_epoch metric |
redis_cluster_size | gauge | cls , ip , instance , ins , job |
cluster_size metric |
redis_cluster_slots_assigned | gauge | cls , ip , instance , ins , job |
cluster_slots_assigned metric |
redis_cluster_slots_fail | gauge | cls , ip , instance , ins , job |
cluster_slots_fail metric |
redis_cluster_slots_ok | gauge | cls , ip , instance , ins , job |
cluster_slots_ok metric |
redis_cluster_slots_pfail | gauge | cls , ip , instance , ins , job |
cluster_slots_pfail metric |
redis_cluster_state | gauge | cls , ip , instance , ins , job |
cluster_state metric |
redis_cluster_stats_messages_meet_received | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_meet_received metric |
redis_cluster_stats_messages_meet_sent | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_meet_sent metric |
redis_cluster_stats_messages_ping_received | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_ping_received metric |
redis_cluster_stats_messages_ping_sent | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_ping_sent metric |
redis_cluster_stats_messages_pong_received | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_pong_received metric |
redis_cluster_stats_messages_pong_sent | gauge | cls , ip , instance , ins , job |
cluster_stats_messages_pong_sent metric |
redis_commands_duration_seconds_total | counter | cls , cmd , ip , instance , ins , job |
Total amount of time in seconds spent per command |
redis_commands_failed_calls_total | counter | cls , cmd , ip , instance , ins , job |
Total number of errors prior command execution per command |
redis_commands_latencies_usec_bucket | Unknown | cls , cmd , ip , le , instance , ins , job |
N/A |
redis_commands_latencies_usec_count | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis_commands_latencies_usec_sum | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis_commands_processed_total | counter | cls , ip , instance , ins , job |
commands_processed_total metric |
redis_commands_rejected_calls_total | counter | cls , cmd , ip , instance , ins , job |
Total number of errors within command execution per command |
redis_commands_total | counter | cls , cmd , ip , instance , ins , job |
Total number of calls per command |
redis_config_io_threads | gauge | cls , ip , instance , ins , job |
config_io_threads metric |
redis_config_maxclients | gauge | cls , ip , instance , ins , job |
config_maxclients metric |
redis_config_maxmemory | gauge | cls , ip , instance , ins , job |
config_maxmemory metric |
redis_connected_clients | gauge | cls , ip , instance , ins , job |
connected_clients metric |
redis_connected_slave_lag_seconds | gauge | cls , ip , slave_ip , instance , slave_state , ins , slave_port , job |
Lag of connected slave |
redis_connected_slave_offset_bytes | gauge | cls , ip , slave_ip , instance , slave_state , ins , slave_port , job |
Offset of connected slave |
redis_connected_slaves | gauge | cls , ip , instance , ins , job |
connected_slaves metric |
redis_connections_received_total | counter | cls , ip , instance , ins , job |
connections_received_total metric |
redis_cpu_sys_children_seconds_total | counter | cls , ip , instance , ins , job |
cpu_sys_children_seconds_total metric |
redis_cpu_sys_main_thread_seconds_total | counter | cls , ip , instance , ins , job |
cpu_sys_main_thread_seconds_total metric |
redis_cpu_sys_seconds_total | counter | cls , ip , instance , ins , job |
cpu_sys_seconds_total metric |
redis_cpu_user_children_seconds_total | counter | cls , ip , instance , ins , job |
cpu_user_children_seconds_total metric |
redis_cpu_user_main_thread_seconds_total | counter | cls , ip , instance , ins , job |
cpu_user_main_thread_seconds_total metric |
redis_cpu_user_seconds_total | counter | cls , ip , instance , ins , job |
cpu_user_seconds_total metric |
redis_db_keys | gauge | cls , ip , instance , ins , db , job |
Total number of keys by DB |
redis_db_keys_expiring | gauge | cls , ip , instance , ins , db , job |
Total number of expiring keys by DB |
redis_defrag_hits | gauge | cls , ip , instance , ins , job |
defrag_hits metric |
redis_defrag_key_hits | gauge | cls , ip , instance , ins , job |
defrag_key_hits metric |
redis_defrag_key_misses | gauge | cls , ip , instance , ins , job |
defrag_key_misses metric |
redis_defrag_misses | gauge | cls , ip , instance , ins , job |
defrag_misses metric |
redis_dump_payload_sanitizations | counter | cls , ip , instance , ins , job |
dump_payload_sanitizations metric |
redis_errors_total | counter | cls , ip , err , instance , ins , job |
Total number of errors per error type |
redis_evicted_keys_total | counter | cls , ip , instance , ins , job |
evicted_keys_total metric |
redis_expired_keys_total | counter | cls , ip , instance , ins , job |
expired_keys_total metric |
redis_expired_stale_percentage | gauge | cls , ip , instance , ins , job |
expired_stale_percentage metric |
redis_expired_time_cap_reached_total | gauge | cls , ip , instance , ins , job |
expired_time_cap_reached_total metric |
redis_exporter_build_info | gauge | cls , golang_version , ip , commit_sha , instance , version , ins , job , build_date |
redis exporter build_info |
redis_exporter_last_scrape_connect_time_seconds | gauge | cls , ip , instance , ins , job |
exporter_last_scrape_connect_time_seconds metric |
redis_exporter_last_scrape_duration_seconds | gauge | cls , ip , instance , ins , job |
exporter_last_scrape_duration_seconds metric |
redis_exporter_last_scrape_error | gauge | cls , ip , instance , ins , job |
The last scrape error status. |
redis_exporter_scrape_duration_seconds_count | Unknown | cls , ip , instance , ins , job |
N/A |
redis_exporter_scrape_duration_seconds_sum | Unknown | cls , ip , instance , ins , job |
N/A |
redis_exporter_scrapes_total | counter | cls , ip , instance , ins , job |
Current total redis scrapes. |
redis_instance_info | gauge | cls , ip , os , role , instance , run_id , redis_version , tcp_port , process_id , ins , redis_mode , maxmemory_policy , redis_build_id , job |
Information about the Redis instance |
redis_io_threaded_reads_processed | counter | cls , ip , instance , ins , job |
io_threaded_reads_processed metric |
redis_io_threaded_writes_processed | counter | cls , ip , instance , ins , job |
io_threaded_writes_processed metric |
redis_io_threads_active | gauge | cls , ip , instance , ins , job |
io_threads_active metric |
redis_keyspace_hits_total | counter | cls , ip , instance , ins , job |
keyspace_hits_total metric |
redis_keyspace_misses_total | counter | cls , ip , instance , ins , job |
keyspace_misses_total metric |
redis_last_key_groups_scrape_duration_milliseconds | gauge | cls , ip , instance , ins , job |
Duration of the last key group metrics scrape in milliseconds |
redis_last_slow_execution_duration_seconds | gauge | cls , ip , instance , ins , job |
The amount of time needed for last slow execution, in seconds |
redis_latency_percentiles_usec | summary | cls , cmd , ip , instance , quantile , ins , job |
A summary of latency percentile distribution per command |
redis_latency_percentiles_usec_count | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis_latency_percentiles_usec_sum | Unknown | cls , cmd , ip , instance , ins , job |
N/A |
redis_latest_fork_seconds | gauge | cls , ip , instance , ins , job |
latest_fork_seconds metric |
redis_lazyfree_pending_objects | gauge | cls , ip , instance , ins , job |
lazyfree_pending_objects metric |
redis_loading_dump_file | gauge | cls , ip , instance , ins , job |
loading_dump_file metric |
redis_master_last_io_seconds_ago | gauge | cls , ip , master_host , instance , ins , job , master_port |
Master last io seconds ago |
redis_master_link_up | gauge | cls , ip , master_host , instance , ins , job , master_port |
Master link status on Redis slave |
redis_master_repl_offset | gauge | cls , ip , instance , ins , job |
master_repl_offset metric |
redis_master_sync_in_progress | gauge | cls , ip , master_host , instance , ins , job , master_port |
Master sync in progress |
redis_mem_clients_normal | gauge | cls , ip , instance , ins , job |
mem_clients_normal metric |
redis_mem_clients_slaves | gauge | cls , ip , instance , ins , job |
mem_clients_slaves metric |
redis_mem_fragmentation_bytes | gauge | cls , ip , instance , ins , job |
mem_fragmentation_bytes metric |
redis_mem_fragmentation_ratio | gauge | cls , ip , instance , ins , job |
mem_fragmentation_ratio metric |
redis_mem_not_counted_for_eviction_bytes | gauge | cls , ip , instance , ins , job |
mem_not_counted_for_eviction_bytes metric |
redis_memory_max_bytes | gauge | cls , ip , instance , ins , job |
memory_max_bytes metric |
redis_memory_used_bytes | gauge | cls , ip , instance , ins , job |
memory_used_bytes metric |
redis_memory_used_dataset_bytes | gauge | cls , ip , instance , ins , job |
memory_used_dataset_bytes metric |
redis_memory_used_lua_bytes | gauge | cls , ip , instance , ins , job |
memory_used_lua_bytes metric |
redis_memory_used_overhead_bytes | gauge | cls , ip , instance , ins , job |
memory_used_overhead_bytes metric |
redis_memory_used_peak_bytes | gauge | cls , ip , instance , ins , job |
memory_used_peak_bytes metric |
redis_memory_used_rss_bytes | gauge | cls , ip , instance , ins , job |
memory_used_rss_bytes metric |
redis_memory_used_scripts_bytes | gauge | cls , ip , instance , ins , job |
memory_used_scripts_bytes metric |
redis_memory_used_startup_bytes | gauge | cls , ip , instance , ins , job |
memory_used_startup_bytes metric |
redis_migrate_cached_sockets_total | gauge | cls , ip , instance , ins , job |
migrate_cached_sockets_total metric |
redis_module_fork_in_progress | gauge | cls , ip , instance , ins , job |
module_fork_in_progress metric |
redis_module_fork_last_cow_size | gauge | cls , ip , instance , ins , job |
module_fork_last_cow_size metric |
redis_net_input_bytes_total | counter | cls , ip , instance , ins , job |
net_input_bytes_total metric |
redis_net_output_bytes_total | counter | cls , ip , instance , ins , job |
net_output_bytes_total metric |
redis_number_of_cached_scripts | gauge | cls , ip , instance , ins , job |
number_of_cached_scripts metric |
redis_process_id | gauge | cls , ip , instance , ins , job |
process_id metric |
redis_pubsub_channels | gauge | cls , ip , instance , ins , job |
pubsub_channels metric |
redis_pubsub_patterns | gauge | cls , ip , instance , ins , job |
pubsub_patterns metric |
redis_pubsubshard_channels | gauge | cls , ip , instance , ins , job |
pubsubshard_channels metric |
redis_rdb_bgsave_in_progress | gauge | cls , ip , instance , ins , job |
rdb_bgsave_in_progress metric |
redis_rdb_changes_since_last_save | gauge | cls , ip , instance , ins , job |
rdb_changes_since_last_save metric |
redis_rdb_current_bgsave_duration_sec | gauge | cls , ip , instance , ins , job |
rdb_current_bgsave_duration_sec metric |
redis_rdb_last_bgsave_duration_sec | gauge | cls , ip , instance , ins , job |
rdb_last_bgsave_duration_sec metric |
redis_rdb_last_bgsave_status | gauge | cls , ip , instance , ins , job |
rdb_last_bgsave_status metric |
redis_rdb_last_cow_size_bytes | gauge | cls , ip , instance , ins , job |
rdb_last_cow_size_bytes metric |
redis_rdb_last_save_timestamp_seconds | gauge | cls , ip , instance , ins , job |
rdb_last_save_timestamp_seconds metric |
redis_rejected_connections_total | counter | cls , ip , instance , ins , job |
rejected_connections_total metric |
redis_repl_backlog_first_byte_offset | gauge | cls , ip , instance , ins , job |
repl_backlog_first_byte_offset metric |
redis_repl_backlog_history_bytes | gauge | cls , ip , instance , ins , job |
repl_backlog_history_bytes metric |
redis_repl_backlog_is_active | gauge | cls , ip , instance , ins , job |
repl_backlog_is_active metric |
redis_replica_partial_resync_accepted | gauge | cls , ip , instance , ins , job |
replica_partial_resync_accepted metric |
redis_replica_partial_resync_denied | gauge | cls , ip , instance , ins , job |
replica_partial_resync_denied metric |
redis_replica_resyncs_full | gauge | cls , ip , instance , ins , job |
replica_resyncs_full metric |
redis_replication_backlog_bytes | gauge | cls , ip , instance , ins , job |
replication_backlog_bytes metric |
redis_second_repl_offset | gauge | cls , ip , instance , ins , job |
second_repl_offset metric |
redis_sentinel_master_ckquorum_status | gauge | cls , ip , message , instance , ins , master_name , job |
Master ckquorum status |
redis_sentinel_master_ok_sentinels | gauge | cls , ip , instance , ins , master_address , master_name , job |
The number of okay sentinels monitoring this master |
redis_sentinel_master_ok_slaves | gauge | cls , ip , instance , ins , master_address , master_name , job |
The number of okay slaves of the master |
redis_sentinel_master_sentinels | gauge | cls , ip , instance , ins , master_address , master_name , job |
The number of sentinels monitoring this master |
redis_sentinel_master_setting_ckquorum | gauge | cls , ip , instance , ins , master_address , master_name , job |
Show the current ckquorum config for each master |
redis_sentinel_master_setting_down_after_milliseconds | gauge | cls , ip , instance , ins , master_address , master_name , job |
Show the current down-after-milliseconds config for each master |
redis_sentinel_master_setting_failover_timeout | gauge | cls , ip , instance , ins , master_address , master_name , job |
Show the current failover-timeout config for each master |
redis_sentinel_master_setting_parallel_syncs | gauge | cls , ip , instance , ins , master_address , master_name , job |
Show the current parallel-syncs config for each master |
redis_sentinel_master_slaves | gauge | cls , ip , instance , ins , master_address , master_name , job |
The number of slaves of the master |
redis_sentinel_master_status | gauge | cls , ip , master_status , instance , ins , master_address , master_name , job |
Master status on Sentinel |
redis_sentinel_masters | gauge | cls , ip , instance , ins , job |
The number of masters this sentinel is watching |
redis_sentinel_running_scripts | gauge | cls , ip , instance , ins , job |
Number of scripts in execution right now |
redis_sentinel_scripts_queue_length | gauge | cls , ip , instance , ins , job |
Queue of user scripts to execute |
redis_sentinel_simulate_failure_flags | gauge | cls , ip , instance , ins , job |
Failures simulations |
redis_sentinel_tilt | gauge | cls , ip , instance , ins , job |
Sentinel is in TILT mode |
redis_slave_expires_tracked_keys | gauge | cls , ip , instance , ins , job |
slave_expires_tracked_keys metric |
redis_slave_info | gauge | cls , ip , master_host , instance , read_only , ins , job , master_port |
Information about the Redis slave |
redis_slave_priority | gauge | cls , ip , instance , ins , job |
slave_priority metric |
redis_slave_repl_offset | gauge | cls , ip , master_host , instance , ins , job , master_port |
Slave replication offset |
redis_slowlog_last_id | gauge | cls , ip , instance , ins , job |
Last id of slowlog |
redis_slowlog_length | gauge | cls , ip , instance , ins , job |
Total slowlog |
redis_start_time_seconds | gauge | cls , ip , instance , ins , job |
Start time of the Redis instance since unix epoch in seconds. |
redis_target_scrape_request_errors_total | counter | cls , ip , instance , ins , job |
Errors in requests to the exporter |
redis_total_error_replies | counter | cls , ip , instance , ins , job |
total_error_replies metric |
redis_total_reads_processed | counter | cls , ip , instance , ins , job |
total_reads_processed metric |
redis_total_system_memory_bytes | gauge | cls , ip , instance , ins , job |
total_system_memory_bytes metric |
redis_total_writes_processed | counter | cls , ip , instance , ins , job |
total_writes_processed metric |
redis_tracking_clients | gauge | cls , ip , instance , ins , job |
tracking_clients metric |
redis_tracking_total_items | gauge | cls , ip , instance , ins , job |
tracking_total_items metric |
redis_tracking_total_keys | gauge | cls , ip , instance , ins , job |
tracking_total_keys metric |
redis_tracking_total_prefixes | gauge | cls , ip , instance , ins , job |
tracking_total_prefixes metric |
redis_unexpected_error_replies | counter | cls , ip , instance , ins , job |
unexpected_error_replies metric |
redis_up | gauge | cls , ip , instance , ins , job |
Information about the Redis instance |
redis_uptime_in_seconds | gauge | cls , ip , instance , ins , job |
uptime_in_seconds metric |
scrape_duration_seconds | Unknown | cls , ip , instance , ins , job |
N/A |
scrape_samples_post_metric_relabeling | Unknown | cls , ip , instance , ins , job |
N/A |
scrape_samples_scraped | Unknown | cls , ip , instance , ins , job |
N/A |
scrape_series_added | Unknown | cls , ip , instance , ins , job |
N/A |
up | Unknown | cls , ip , instance , ins , job |
N/A |
7 - 常见问题
Redis初始化失败:ABORT due to existing redis instance
这意味着正在初始化的 Redis 实例已经存在了,使用 redis_clean = true
和 redis_safeguard = false
来强制清除redis数据
当您运行redis.yml
来初始化一个已经在运行的redis实例,并且redis_clean
设置为false
时,就会出现这种情况。
如果redis_clean
设置为true
(并且 redis_safeguard
也设置为false
),redis.yml
剧本将删除现有的redis实例并将其重新初始化为一个新的实例,这使得redis.yml
剧本完全具有幂等性。
Redis初始化失败:ABORT due to redis_safeguard enabled
这意味着正准备清理的 Redis 实例打开了防误删保险:当 redis_safeguard
设置为 true
时,尝试移除一个redis实例时就会出现这种情况。
您可以关闭 redis_safeguard
来移除Redis实例。这就是 redis_safeguard
的作用。
如何在某个节点上添加一个新的Redis实例?
使用 bin/redis-add <ip> <port>
在节点上部署一个新的redis实例。
如何从节点上移除一个特定实例?
使用 bin/redis-rm <ip> <port>
从节点上移除一个单独的redis实例。