Redis是目前流行的高性能key-value数据库,但如果使用不当,很容易出现慢查询。慢查询过多或者一个时间较长(例如20s)的慢查询会导致操作队列(Redis是单进程)堵塞,可能会导致服务不可用。因此您需要实时收集并分析Redis slowlog,在出现问题时快速定位解决。本文介绍如何通过Elasticsearch和rsbeat实时分析Redis slowlog。
背景信息
- Elasticsearch:是一个基于Lucene的实时分布式的搜索与分析引擎,是遵从Apache开源条款的一款开源产品,是当前主流的企业级搜索引擎。它提供了一个分布式服务,可以使您快速的近乎于准实时的存储、查询和分析超大数据集,通常被用来作为构建复杂查询特性和需求强大应用的基础引擎或技术。
阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务,支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。本文使用阿里云Elasticsearch进行演示,详情请参见什么是阿里云Elasticsearch。
- rsbeat:用来收集和分析Redis慢日志的采集器,详情请参见rsbeat官方文档。
- Redis:是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件,详情请参见Redis官方说明。
云数据库Redis版(ApsaraDB for Redis)是兼容开源Redis协议标准、提供内存加硬盘的混合存储方式的数据库服务,基于高可靠双机热备架构及可平滑扩展的集群架构,满足高读写性能场景及弹性变配的业务需求。本文使用云数据库Redis版进行演示,更多详情请参见什么是云数据库Redis版。