暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis 运维工具都有哪些

writeline 2021-11-22
820

今天来聊一聊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%出现的异常状况。

本篇分享先到这里,欢迎关注。

如有收获,点个在看,诚挚感谢
文章转载自writeline,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论