Redis监控方案以及相关黄金指标提升稳定性和可靠性

Redis 是非常经典优秀的内存数据库,其拥有非常高的性能;其单机实例在数据结构设计良好,实例健康的情况下能达到10w左右的OPS 现代应用程序对实时性的需求和计算机体系结构的限制决定了:很多时候我们都需要将 in-memory data stores 放在现代应用程序的中心,因此在很多常见场景中我们也都能见到 Redis,如:

  • 数据库:可作为传统的基于磁盘的数据库的替代方案。Redis非常简单粗暴地以持久性换取运行速度,并且支持异步磁盘持久化;同时提供了一组丰富的数据原语和非常广泛的命令列表
  • 消息队列:Redis 的 blocking list 和低延迟特性使其成为 Message Broker 服务的良好支持
  • 内存缓存:Redis 提供了可配置的针对过期 key 的驱逐策略,包括但不限于 LRU 和 LFU等等(下面会提到),使得 Redis 成为了缓存服务器的理想选择,并且 Redis 还支持持久化到磁盘以及快速恢复的机制,提高了其可靠性

即使作为一款高性能数据库,我们也必须建设良好的监控,以保障Redis的稳定性和可靠性,发挥其最大的能力;本文就从来探讨一下 Redis 有哪些值得注意的指标以及相关的监控方案

关于常见分布式组件高可用设计原理的理解和思考


1. 需要了解的词

  • OPS:Operates per second 字面含义
  • LRU:LRU是Least Recently Used的缩写,意为“最近最少使用”;LRU是一种缓存淘汰策略,用于确定在缓存达到最大容量时哪些项目应该被清除
    其基本思想为:当缓存达到其最大容量时,应该清除最近最少使用的项目。具体来说,每当某个项目被访问时,该项目将被移动到一个队列的前面。当缓存达到容量限制时,队列的尾部项目将被清除
    由于LRU策略通常具有较好的性能,因此它被广泛用于各种系统中,如操作系统内存管理、数据库、网络缓存等

2. 「基准性能」相关指标

对于 Redis 来说,基准性能可以是 Redis 在一台负载正常的机器上的延迟、OPS以及hit rate(狭义上可以理解为缓存命中率);在不同的硬件环境下 Redis 的性能不尽相同,所以我们需要在相同的硬件条件下来判断 Redis 是否真的变慢了 以下是 Redis 值得注意的基准性能指标:

2.1 Latency

这里的延迟是指对客户端请求和实际服务器响应之间的时间的度量;检查 Redis 实例的延迟是检测 Redis 性能变化最简单也最直接的方式 由于Redis的单线程特性,延迟分布中的异常值可能会导致严重的性能瓶颈,一个请求的响应时间较长就会增加所有后续请求的延迟(在 Redis 6.0 后网络请求由另其它线程管理,一定程度上解决了这个问题)

2.2 最大响应延迟

为了避免业务服务器到 Redis 服务器之间的网络延迟,我们需要直接在 Redis server 上测试实例的响应延迟情况;执行以下命令,就可以得到一个 Redis 实例 60 秒内的最大响应延迟:

bash-5.0# redis-cli -h 127.0.0.1 -p 6379 --intrinsic-latency 60
Max latency so far: 1 microseconds.
Max latency so far: 12 microseconds.
Max latency so far: 38 microseconds.
Max latency so far: 51 microseconds.
Max latency so far: 185 microseconds.
Max latency so far: 213 microseconds.
Max latency so far: 224 microseconds.
Max latency so far: 227 microseconds.
Max latency so far: 228 microseconds.
Max latency so far: 278 microseconds.
Max latency so far: 361 microseconds.
Max latency so far: 677 microseconds.
​
1980070837 total runs (avg latency: 0.0303 microseconds / 30.30 nanoseconds per run).
Worst run took 22342x longer than the average latency.

从输出结果可以看到,这 60 秒内的最大响应延迟为 677 微秒(0.672ms)

2.3 平均响应延迟

我们还可以使用以下命令查看一段时间内 Redis 的最小、最大、平均访问延迟:

bash-5.0# redis-cli -h 127.0.0.1 -p 6379 --latency-history -i 1
min: 0, max: 1, avg: 0.11 (100 samples) -- 1.01 seconds range
min: 0, max: 1, avg: 0.07 (99 samples) -- 1.01 seconds range
min: 0, max: 1, avg: 0.09 (98 samples) -- 1.00 seconds range
min: 0, max: 1, avg: 0.11 (99 samples) -- 1.01 seconds range
min: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值