Redis监控方案

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

Redis介绍

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表、哈希、集合和有序集合5种。支持在服务器端计算集合的并、交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。

Redis监控

首先判断客户端和服务器连接是否正常

1
2
3
4
5
6
7
# 客户端和服务器连接正常,返回PONG
redis> PING
PONG
 
# 客户端和服务器连接不正常(网络不正常或服务器未能正常运行),返回连接异常
redis  127.0 . 0.1: 6379 > PING
Could not connect to Redis at  127.0 . 0.1: 6379:  Connection refused

Redis 监控最直接的方法就是使用系统提供的 info 命令,只需要执行下面一条命令,就能获得 Redis 系统的状态报告。

1
redis-cli info

结果会返回 Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace 8个部分。从info大返回结果中提取相关信息,就可以达到有效监控的目的。

先解释下各个参数含义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Server
redis_version: 2.8 . 8                      # Redis 的版本
redis_git_sha 1: 00000000
redis_git_dirty: 0
redis_build_id:bf 5 d 1747 be 5380 f
redis_mode:standalone
os:Linux  2.6 . 32 -220.7 . 1 .el 6 .x 86 _ 64  x 86 _ 64
arch_bits: 64
multiplexing_api:epoll
gcc_version: 4.4 . 7                        #gcc版本
process_id: 49324                         # 当前 Redis 服务器进程id
run_id:bbd 7 b 17 efcf 108 fdde 285 d 8987 e 50392 f 6 a 38 f 48
tcp_port: 6379
uptime_in_seconds: 1739082                # 运行时间(秒)
uptime_in_days: 20                        # 运行时间(天)
hz: 10
lru_clock: 1734729
config_file:/home/s/apps/RedisMulti_video_so/conf/zzz.conf
 
# Clients
connected_clients: 1                      #连接的客户端数量
client_longest_output_list: 0
client_biggest_input_buf: 0
blocked_clients: 0
 
# Memory
used_memory: 821848                        #Redis分配的内存总量             
used_memory_human: 802.59 K
used_memory_rss: 85532672                  #Redis分配的内存总量(包括内存碎片)
used_memory_peak: 178987632
used_memory_peak_human: 170.70 M           #Redis所用内存的高峰值
used_memory_lua: 33792
mem_fragmentation_ratio: 104.07            #内存碎片比率
mem_allocator:tcmalloc -2.0
 
# Persistence
loading: 0
rdb_changes_since_last_save: 0             #上次保存数据库之后,执行命令的次数
rdb_bgsave_in_progress: 0                  #后台进行中的 save 操作的数量
rdb_last_save_time: 1410848505             #最后一次成功保存的时间点,以 UNIX 时间戳格式显示
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec: 0
rdb_current_bgsave_time_sec: -1
aof_enabled: 0                             #redis是否开启了aof
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
 
# Stats
total_connections_received: 5705           #运行以来连接过的客户端的总数量
total_commands_processed: 204013           # 运行以来执行过的命令的总数量
instantaneous_ops_per_sec: 0
rejected_connections: 0
sync_full: 0
sync_partial_ok: 0
sync_partial_err: 0
expired_keys: 34401                        #运行以来过期的 key 的数量
evicted_keys: 0                            #运行以来删除过的key的数量
keyspace_hits: 2129                        #命中key 的次数
keyspace_misses: 3148                      #没命中key 的次数
pubsub_channels: 0                         #当前使用中的频道数量
pubsub_patterns: 0                         #当前使用中的模式数量
latest_fork_usec: 4391
 
# Replication
role:master                              #当前实例的角色master还是slave
connected_slaves: 0
master_repl_offset: 0
repl_backlog_active: 0
repl_backlog_size: 1048576
repl_backlog_first_byte_offset: 0
repl_backlog_histlen: 0
 
# CPU
used_cpu_sys: 1551.61
used_cpu_user: 1083.37
used_cpu_sys_children: 2.52
used_cpu_user_children: 16.79
 
# Keyspace
db 0: keys= 3 ,expires= 0 ,avg_ttl= 0              #各个数据库的 key 的数量,以及带有生存期的 key 的数量

内存使用

如果 Redis 使用的内存超出了可用的物理内存大小,那么 Redis 很可能系统会被杀掉。针对这一点,你可以通过 info 命令对 used_memory 和 used_memory_peak 进行监控,为使用内存量设定阀值,并设定相应的报警机制。当然,报警只是手段,重要的是你得预先计划好,当内存使用量过大后,你应该做些什么,是清除一些没用的冷数据,还是把 Redis 迁移到更强大的机器上去。

持久化

如果因为你的机器或 Redis 本身的问题导致 Redis 崩溃了,那么你唯一的救命稻草可能就是 dump 出来的rdb文件了,所以,对 Redis dump 文件进行监控也是很重要的。可以通过对rdb_last_save_time 进行监控,了解最近一次 dump 数据操作的时间,还可以通过对rdb_changes_since_last_save进行监控来获得如果这时候出现故障,会丢失(即已改变)多少数据。

Keys

通过获取Keyspace中的结果得到各个数据库中key的数量

QPS

即每分钟执行的命令个数,即:(total_commands_processed2-total_commands_processed1)/span,为了实时得到QPS,可以设定脚本在后台运行,记录过去几分钟的total_commands_processed。在计算QPS时,利用过去的信息和当前的信息得出QPS的估计值。

参考

redis info命令中各个参数的含义

ping

 




本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3979298.html,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
canal NoSQL 关系型数据库
Redis应用—7.大Value处理方案
本文介绍了一种用于监控Redis大key的方案设计及其实现步骤。主要内容包括:方案设计、安装与配置环境、binlog数据消费者。
133 29
Redis应用—7.大Value处理方案
|
1月前
|
存储 监控 NoSQL
Redis集群有哪些方案
1. 主从复制集群 : 读写分离, 一主多从 , 解决高并发读的问题 2. 哨兵集群 : 主从集群的结构之上 , 加入了哨兵用于监控集群状态 , 主节点出现故障, 执行主从切换 , 解决高可用问题 3. Cluster分片集群 : 多主多从 , 解决高并发写的问题, 以及海量数据存储问题 , 每个主节点存储一部分集群数据
|
1月前
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
|
1月前
|
运维 监控 NoSQL
【赵渝强老师】监控Redis
Redis 实例的监控是运维管理中的关键内容,主要包括内存、吞吐量、运行时信息和延时的监控。 1. **监控内存**:使用 `info memory` 可查看 Redis 内存使用情况,包括已用内存、峰值内存等。 2. **监控吞吐量**:通过 `info stats` 获取每秒处理命令数(OPS)、网络输入输出流量等。 3. **监控运行时信息**:利用 `info` 命令结合 `grep` 过滤出客户端连接数、拒绝连接数等重要信息。 4. **监控延时**:可以通过客户端手动监控或服务器内部延迟监控来检测延时问题。
|
7月前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
3月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
4月前
|
存储 监控 NoSQL
Redis集群方案汇总:概念性介绍
本文介绍了Redis的三种高可用和分布式解决方案:**Redis Replication(主从复制)**、**Redis Sentinel(哨兵模式)** 和 **Redis Cluster(集群模式)**。Redis Replication实现数据备份和读写分离,适合数据安全和负载均衡场景;Redis Sentinel提供自动故障转移和监控功能,适用于读写分离架构;Redis Cluster通过分布式存储和自动故障转移,解决单点性能瓶颈,适合大规模数据和高并发场景。文中还详细描述了各方案的工作原理、优缺点及适用场景。
80 0
|
10月前
|
存储 NoSQL Redis
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
103 0
|
11月前
|
负载均衡 监控 NoSQL
Redis的几种主要集群方案
【5月更文挑战第15天】Redis集群方案包括主从复制(基础,读写分离,手动故障恢复)、哨兵模式(自动高可用,自动故障转移)和Redis Cluster(官方分布式解决方案,自动分片、容错和扩展)。此外,还有Codis、Redisson和Twemproxy等工具用于代理分片和负载均衡。选择方案需考虑应用场景、数据量和并发需求,权衡可用性、性能和扩展性。
354 2
|
6月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
84 3