牛叉,玩转 Redis 必备的几款运维工具(1),2024最新Linux运维高频精选面试题分享

如果你在使用主从集群,就要重点关注下 replication 参数的返回结果,这里面包含了主从同步的实时状态。

不过,INFO 命令只是提供了文本形式的监控结果,并没有可视化,所以,在实际应用中,我们还可以使用一些第三方开源工具,将 INFO 命令的返回结果可视化。接下来,我要讲的 Prometheus,就可以通过插件将 Redis 的统计结果可视化。

2、面向 Prometheus 的 Redis-exporter 监控


Prometheus是一套开源的系统监控报警框架。它的核心功能是从被监控系统中拉取监控数据,结合Grafana工具,进行可视化展示。

而且,监控数据可以保存到时序数据库中,以便运维人员进行历史查询。同时,Prometheus 会检测系统的监控指标是否超过了预设的阈值,一旦超过阈值,Prometheus 就会触发报警。

对于系统的日常运维管理来说,这些功能是非常重要的。而 Prometheus 已经实现了使用这些功能的工具框架。我们只要能从被监控系统中获取到监控数据,就可以用 Prometheus 来实现运维监控。

Prometheus 正好提供了插件功能来实现对一个系统的监控,我们把插件称为 exporter,每一个 exporter 实际是一个采集监控数据的组件。exporter 采集的数据格式符合 Prometheus 的要求,Prometheus 获取这些数据后,就可以进行展示和保存了。

Redis-exporter就是用来监控 Redis 的,它将 INFO 命令监控到的运行状态和各种统计信息提供给 Prometheus,从而进行可视化展示和报警设置。目前,Redis-exporter 可以支持 Redis 2.0 至 6.0 版本,适用范围比较广。

除了获取 Redis 实例的运行状态,Redis-exporter 还可以监控键值对的大小和集合类型数据的元素个数,这个可以在运行 Redis-exporter 时,使用 check-keys 的命令行选项来实现。

此外,我们可以开发一个 Lua 脚本,定制化采集所需监控的数据。然后,我们使用 scripts 命令行选项,让 Redis-exporter 运行这个特定的脚本,从而可以满足业务层的多样化监控需求。

最后,我还想再给你分享两个小工具:redis-stat和Redis Live。跟 Redis-exporter 相比,这两个都是轻量级的监控工具。它们分别是用 Ruby 和 Python 开发的,也是将 INFO 命令提供的实例运行状态信息可视化展示。

虽然这两个工具目前已经很少更新了,不过,如果你想自行开发 Redis 监控工具,它们都是不错的参考。

除了监控 Redis 的运行状态,还有一个常见的运维任务就是数据迁移。接下来,我们再来学习下数据迁移的工具。

3、数据迁移工具 Redis-shake


有时候,我们需要在不同的实例间迁移数据。目前,比较常用的一个数据迁移工具是Redis-shake,这是阿里云 Redis 和 MongoDB 团队开发的一个用于 Redis 数据同步的工具。

Redis-shake 的基本运行原理,是先启动 Redis-shake 进程,这个进程模拟了一个 Redis 实例。

然后,Redis-shake 进程和数据迁出的源实例进行数据的全量同步。

这个过程和 Redis 主从实例的全量同步是类似的。

源实例相当于主库,Redis-shake 相当于从库,源实例先把 RDB 文件传输给 Redis-shake,Redis-shake 会把 RDB 文件发送给目的实例。接着,源实例会再把增量命令发送给 Redis-shake,Redis-shake 负责把这些增量命令再同步给目的实例。

下面这张图展示了 Redis-shake 进行数据迁移的过程:

图片

Redis-shake 的一大优势,就是支持多种类型的迁移。

首先,它既支持单个实例间的数据迁移,也支持集群到集群间的数据迁移。

其次,有的 Redis 切片集群(例如 Codis)会使用 proxy 接收请求操作,Redis-shake 也同样支持和 proxy 进行数据迁移。

另外,因为 Redis-shake 是阿里云团队开发的,所以,除了支持开源的 Redis 版本以外,Redis-shake 还支持云下的 Redis 实例和云上的 Redis 实例进行迁移,可以帮助我们实现 Redis 服务上云的目标。

在数据迁移后,我们通常需要对比源实例和目的实例中的数据是否一致。如果有不一致的数据,我们需要把它们找出来,从目的实例中剔除,或者是再次迁移这些不一致的数据。

这里,我就要再给你介绍一个数据一致性比对的工具了,就是阿里云团队开发的Redis-full-check。

Redis-full-check 的工作原理很简单,就是对源实例和目的实例中的数据进行全量比对,从而完成数据校验。不过,为了降低数据校验的比对开销,Redis-full-check 采用了多轮比较的方法。

在第一轮校验时,Redis-full-check 会找出在源实例上的所有 key,然后从源实例和目的实例中把相应的值也都查找出来,进行比对。第一次比对后,Redis-full-check 会把目的实例中和源实例不一致的数据,记录到 sqlite 数据库中。

从第二轮校验开始,Redis-full-check 只比较上一轮结束后记录在数据库中的不一致的数据。

为了避免对实例的正常请求处理造成影响,Redis-full-check 在每一轮比对结束后,会暂停一段时间。随着 Redis-shake 增量同步的进行,源实例和目的实例中的不一致数据也会逐步减少,所以,我们校验比对的轮数不用很多。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-lLXLIFJg-1712840916093)]

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值