❝今天来聊一聊
❞Redis
运维工具都有哪些?
通常我们在运维Redis
时,免不了要去查看它的运行状况、指标等等数据,而我们最常用的命令应该就是「INFO」了吧。
1.1 INFO 命令
「INFO」命令是Redis
提供的原生命令,它提供出来的信息看似简单,但却包含着Redis
运行过程中各项指标,如果做好数据采集并监控到位,80%的异常问题都能得到有效的解决,那具体监控的时候我们需要关注些啥指标呢?我们可以参照下面的表格来对照:
| 类别 | 子类别 | 命令 |
|---|---|---|
| 实例本身的信息 | 无 | 「server」 |
| 运行状态统计信息 | 客户端统计信息 | 「client」 |
| 通用统计信息 | 「stat」 | |
| 数据库整体统计信息 | 「keyspace」 | |
| 不同类型命令的调用统计信息 | 「commandstats」 | |
| 资源使用统计信息 | cpu 使用情况 | 「cpu」 |
| memory 使用情况 | 「memory」 | |
| 关键功能运行状态 | RDB、AOF 运行情况 | 「persistence」 |
| 主从复制的运行情况 | 「replication」 | |
| 切片集群的运行情况 | 「cluster」 |
需要重点关注一下「stat」、「commandstat」、「cpu」和「memory」这四个参数的返回结果,这里面包含了命令的执行情况(比如命令的执行次数和执行时间、命令使用的 CPU 资源),内存资源的使用情况(比如内存已使用量、内存碎片率),CPU 资源使用情况等,这可以帮助我们判断实例的运行状态和资源消耗情况。另外,当启用RDB
或AOF
功能时,你就需要重点关注下「persistence」参数的返回结果。如果你在使用主从集群,就要重点关注下「replication」参数的返回结果。但是美中不足的是,这个命令并没有可视化界面,所以在实际运用中,肯定还会借助一些第三方工具将这些指标可视化展示出来。
1.2 其他第三方软件
Prometheus 的 Redis-exporter 监控 elastic 的 metrcibeat 监控 redis-stat redis live
通过上面这四种工具都可以将指标可视化出来。除了监控运行状态外,可能还会关注数据迁移。
1.3 数据迁移
通常会使用Redis-shake
。它的运行原理是先启动Redis-shake
进程,这个进程模拟了一个Redis
实例。然后,这个进程和数据迁出的源实例进行数据的全量同步。同步过程和Redis
主从同步原理是一样的。它的特点是支持多个类型间实例数据迁移:
支持单实例间数据迁移,也支持集群间的数据迁移 支持云下的实例和云上的实例间数据迁移 支持使用 codis
切片集群的数据迁移
可以看出,这个工具还是很强悍的。在数据迁移后,如果要比对数据是否一致,这时候就需要用到Redis-full-check
数据对比工具来完成了。
1.4 数据比对
Redis-full-check
的工作原理很简单,就是对源实例和目标实例中的数据进行全量比对,从而完成数据校验。不过,为了降低数据校验的比对开销,它采用了多轮比较的方法。在第一轮校验时,它会找出在源实例上的所有「key」,然后从源实例和目标实例中把相应的值也都查找出来,进行比对。第一次比对后,会把目标实例中和源实例不一致的数据,记录到sqlite
数据库中。从第二轮校验开始,只比较上一轮结束后记录在数据库中的不一致的数据。为了避免对实例的正常请求处理造成影响,在每一轮比对结束后,会暂停一段时间。随着Redis-shake
增量同步的进行,源实例和目的实例中的不一致数据也会逐步减少。所以,我们校验比对的轮数不用很多。可以通过参数「comparetimes」来设置想要比对的轮数。等到所有轮数都比对完成后,数据库中记录的数据就是源实例和目标实例最终的差异结果了。需要注意的是Redis-full-check
提供了三种比对模式,可以通过参数「comparemode」来进行设置。它的取值如下:
KeyOutline,只对比 key 值是否相等 ValueOutline,只对比 value 值的长度是否相等 FullValue,对比 key 值、value 长度、value 值是否相等
在实际应用时,可以根据业务对数据一致性程度的要求,选择相应的比对模式。如果一致性要求高,可以设置为 FullValue。
1.5 集群运维管理工具
CacheCloud 是面向「Redis」运维管理的云平台,它实现了主从集群、哨兵集群和Redis Cluster
的自动部署和管理,用户可以直接在平台的管理界面上进行操作。
针对常见的集群运维需求,提供如下几个常见的运维操作:
下线实例:关闭实例以及实例相关的监控任务。 上线实例:重新启动已下线的实例,并进行监控。 添加从节点:在主从集群中给主节点添加一个从节点。 故障切换:手动完成 Redis Cluster 主从节点的故障转移。 配置管理:用户提交配置修改的工单后,管理员进行审核,并完成配置修改。
当然,作为运维管理平台,CacheCloud 除了提供运维操作以外,还提供了丰富的监控信息。CacheCloud 不仅会收集「INFO」命令提供的实例实时运行状态信息,进行可视化展示,而且还会把实例运行状态信息保存下来,例如内存使用情况、客户端连接数、键值对数据量。这样一来,当Redis
运行发生问题时,运维人员可以查询保存的历史记录,并结合当时的运行状态信息进行分析。
1.6 总结
本文分享整理了一些运维方面相关的常用工具,利用好的话,能解决80%出现的异常状况。
❝本篇分享先到这里,欢迎关注。
❞




