Top Key统计

TairRedis内存使用率升高或CPU使用率升高时,您可以使用Top Key统计功能快速找到大Key和热Key。本功能支持展示实例中实时和历史的大Key、热Key信息,包括元素数量多的Key、占用内存大的Key、访问频次高的热Key,帮助您有效解决实例性能问题。

Key和热Key的统计排名机制

为避免对数据库造成额外的资源占用,本功能仅会统计客户端操作(读、写)过的Key,并仅保留和展示每种Key类型的Top数量,而不会实时扫描数据库中的所有Key。同时,在实例重启后或HA切换后,原先统计的TopKey信息将被清空,统计将重新开始,因此长时间未操作过的Key可能不会被纳入统计。如需了解数据库中所有Key的内存占用、数量分布等信息,请使用离线全量Key分析功能。

Key类型

适用版本

统计机制

展示说明

Key(子元素数量)

  • Redis开源版5.0及以上。

  • Tair(企业版)内存型、持久内存型。

元素数量(如Hash中的field数、Set中的member数等)达到阈值(默认2000)及以上时,被统计为大Key。可通过设置参数bigkey-threshold自定义阈值。

说明

若参数设置未显示此参数,请升级小版本后重试。

最多展示每个数据类型排名前3的大Key,当Key的元素数量相同时优先展示先写入的Key。

说明

若实例总共仅展示3个大Key,请升级小版本后重试。

Key(内存占用)

Tair(企业版)内存型云原生版且小版本25.6.0.0及以上。

  • Key的总内存占用大于阈值(默认500 MB)时,被统计为大Key。可通过设置参数bigkey-mem-threshold自定义阈值。

  • Key的单个子元素内存占用大于50MB时,被统计为大Key。

最多支持展示排名前3Key,当Key的大小相同时按字符串字典序排序。

Key(QPS)

  • Redis开源版5.0及以上。

  • Tair(企业版)内存型、持久内存型。

KeyQPS超过5000时,被记录为热Key。可通过设置参数hotkey-threshold自定义阈值。

说明

支持统计不存在的Key。当数据类型显示not-exist-key,代表此Key不存在但存在高频访问。

在同一时间内,系统最多展示前50个热Key,支持实时展示其精确QPS。

说明

建议您升级实例版本至Redis开源版7.0.18、6.0.2.9、5.5.2.9Tair内存型5.0.50、25.2.0.0版本及以上。在上述版本之前:热KeyQPS统计阈值为3000且不支持调整,同时仅能展示其大致的QPS范围,且Redis开源版仅支持统计20个热Key。

Key(流量)

Tair(企业版)内存型云原生版且小版本25.2.0.0及以上。

Key的访问流量超过1MB/s时,被记录为热Key。

  • 默认不开启,可通过设置参数#no_loose_high-cost-key-enabledyes开启此项统计。

  • 可通过设置参数#no_loose_high-cost-key-traffic-bytes-threshold调整统计阈值(单位B/s)。

在同一时间内,系统最多展示前50个热Key,支持实时展示其精确出、入流量和访问频次。

本功能支持统计的数据结构如下:

  • Redis原生数据结构:String、List、Hash、Set、Zset、Stream

  • Tair自研数据结构:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset、TairRoaring、TairTS、TairSearch

    说明

    Tair(企业版)持久内存型仅支持统计TairHash 和 TairString。

操作步骤

  1. 访问实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击CloudDBA > Top Key统计

  3. 根据业务需求,选择查询实时数据或历史数据。

    图 1. Key分析image

    说明
    • 如果实例为集群架构或读写分离架构,您还可以在当前节点下拉框中选择要展示数据的节点。

    • 查询历史数据时,支持查询最近4天的大Key和热Key信息,且最大查询时间范围不能超过3小时。

相关API

DAS产品的API接口

说明

DescribeHotBigKeys

获取当前内存中实时的热Key和大Key信息。

DescribeTopHotKeys

获取一段时间内排名前20的热Key信息。

DescribeTopBigKeys

获取一段时间内排名前20的大Key信息。

DescribeHotKeys

获取Redis实例的热Key信息。

常见问题

  • Q:为什么Key(子元素数量)中会显示String类型Key?

    A:在Redis开源版和部分早期Tair版本中会显示String类型长度大于阈值(默认为2000)的Key。