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的估计值。
参考
http://www.cnblogs.com/kaituorensheng/p/3979298.html
相关推荐
zabbix配置两种方案监控redis数据库
- Nginx不必修改,但NginxStatus状态服务须和监控脚本中配置的地址和端口一致,默认- Redis监控脚本配合模板使用,极为完善,且支持自动发现多实例,自动获取pass,即使是官方提供的监控脚本也远不及于此。
对于任何应用服务和组件,都需要一套完善可靠谱监控方案。 尤其redis这类敏感的纯内存、高并发和低延时的服务,一套完善的监控告警方案,是精细化运营的前提。 本文主要给大家介绍了关于redis状态监控和性能调优的...
项目名称:RedisFox - 基于Golang的可视化Redis监控工具 项目简介: RedisFox是一款使用Go语言开发,致力于提供...RedisFox致力于成为Redis监控领域内的优秀开源解决方案,助力Redis用户更高效地管理和维护数据库。
基本回答:哨兵主要就是启动哨兵(redis特殊)节点,对主节点进行监控,如果半数以上发现ping主节点不通了,认为主节点挂了,则进行故障转移,就是选出一个从节点代替主节点 2.Rediscluster集群模式 基本回答:Redis...
1、本期内容 1.1 版权申明 1.2 内容详情 1.2.1 相关概念简介 1.2.2 一致性的重要 1.2.3 Codis 的使用经验 1.2.4 分布式数据库和架构 1.2.5 现场答疑(Q&A) ...2.5.7 关于集群监控的思考 2.5.8 使用过程中遇到的问题
监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标...
经过不断的迭代研发,目前已形成一整套自动化运维体系:涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运维的灵活性。分布式缓存...
一、Redis是什么? 1 是一个高性能的(key/value)分布式内存数据库; 2 是一个NoSql数据库,基于...4 分布式系统下,Redis可以利用哨兵模式Sentinel监控主机工作状态,在Master主服务器发生故障的时候,可以实现Maste
内容概要:通过带着读者基于 Redis ...阅读建议:此资源以开发报文过滤系统学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。
实现基于WEB方式对 Redis,Memcache 缓存数据库进行维护管理操作。 功能包括:系统的状态实时监控,数据库的展示,库表的展示,缓存数据的展示,查询,新增,修改,删除等,数据的在线编辑维护, 数据的备份还原 ,...
个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ ...
为此,Redis官方提供了一种解决方案:Redis Sentinel 简介 Redis Sentinel集群通常由3到5个节点组成,如果个别节点挂了,集群还可以正常运作。它负责监控Redis集群的健康情况。如果主节点挂掉,Sentin
然而 Redis 本身(包括它的很多客户端)没有实现自动故障发现并进行主备切换的能力,需要外部的监控方案来实现自动故障恢复。 Redis Sentinel 是官方推荐的高可用性解决方案。它是 Redis 集群的监控管理工具,可以提供...
同时网关采用json消息与平台进行交互,支持jms消息队列以及redis消息队列,默认使用ActiveMQ,能够无缝接入各种不同异构系统。 2、上行消息处理应用采用spring框架,采用基于事件驱动的设计模式处理上行消息,支持...
经过不断的迭代研发,目前已形成一整套自动化运维体系:涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运维的灵活性。分布式缓存...
Redis Sentinel主从高可用方案 Redis Cluster集群高可用方案 Druid(数据源配置 sql防注入 sql性能监控) 前后端分离(Html替代Jsp) Nginx静态加载、负载均衡 基于keepalived的nginx高可用方案 Tomcat集群(Redis...
cdc技术分析文章,基于flink-cdc做监控数据源的实时变更数据捕获。该文从基础定义、使用场景、分析、实际使用流程、源码分析、常见问题及解决方式等几个方向讲解了这个技术栈。如果公司有要使用搜索方案,涉及到业务...
深度定制: 提供完整可用的数据监控方案,告别冗长SQL脚本、常用手册,复杂数据通过web页面即可轻易浏览 功能简介 资源管理 Oracle/MySQL/Redis/Linux资源信息录入 资源管理中各类设备信息作为采集设备来源,支持动态...
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中,下面话不多说了,来一起看看详细的介绍吧 1、Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个...