实时Top Key统计

云数据库 Tair(兼容 Redis)集成了DAS的Key分析功能,可展示实例当前实时和历史的大Key和热Key,包括大Key的元素个数以及热Key的访问频次。当Redis内存使用率升高或CPU使用率升高时,帮助您快速找到大Key和热Key,解决实例性能问题。

前提条件

实例为Redis开源版5.0及以上版本,或实例为Tair(企业版)内存型持久内存型

大Key和热Key的统计排名机制

Key类型

统计排名机制

大Key

  • 支持的数据类型

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

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

  • 大Key(元素数量多的Key)

    • 统计阈值:2000(字符串长度或元素数量)。

    • 大Key容量:每个主节点3个。如果实例为集群架构或读写分离架构,系统会展示每个数据分片或只读节点中,每种数据类型排名前3的Key。

    • 统计规则:

      • 根据Key中的字符串长度(仅String类型)或元素数量进行排序。

      • Key的大小不同时,按顺序取前3个到达阈值的Key。

      • Key的大小相同时,先进入统计的Key排序靠前。

  • 大Key(占用内存大的Key)

    说明

    仅支持Tair(企业版)内存型6.0及以上版本的实例。

    • 统计阈值:单个元素大于50 KB或者整个Object大于500 MB。

    • 大Key容量:每个主节点3个。如果实例为集群架构或读写分离架构,系统会展示每个数据分片或只读节点中,每种数据类型排名前3的Key。

    • 统计规则:

      • 根据Key的内存占用大小进行排序(参考MEMORY USAGE命令)。

      • Key的大小不同时,按顺序取前3个到达阈值的Key。

      • Key的大小相同时,按字符串字典序排序。

说明

长时间未操作过的Key可能不会被统计,您可以通过离线全量Key分析功能了解关于大Key的更多信息,例如Key的内存占有情况、Key的数量分布情况、Key中元素的内存占用和分布情况、Key过期时间分布等信息。更多信息请参见离线全量Key分析

热Key

以最近最少使用算法LRU(Least Recently Used)为基础,经过高效的排序以及统计算法识别出当前实例的热点Key。

说明

在更新版本至Redis开源版7.0.18、6.0.2.9、5.5.2.9或Tair内存型5.0.50、24.5.1.0版本及以上时:

  • 在同一时间支持最多统计50个热点Key(在上述版本之前,Redis开源版仅支持统计20个热点Key)。

  • 当某个Key的QPS大于5,000时会被记录为热点Key(在上述版本之前,当Key的QPS大于3,000时即会被记录为热点Key)。

  • 支持展示热点Key的精确QPS(在上述版本之前,仅支持在热点Key的QPS小于6000时展示大致的QPS范围)。

操作步骤

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

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

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

    图 1. Key分析Key分析

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

    • 选择查看历史数据时,支持查询最近4天的大Key和热Key信息,且最大查询时间范围不能超过3小时。例如当前时间为2021年7月15日16点,可查询7月11日16点到7月15日16点的大Key和热Key信息,如果设置查询开始时间为7月11日16点,那么结束时间最晚为7月11日19点。

后续步骤

关于如何在不影响业务的情况下高效地优化大Key或热Key,请参见优化大Key与热Key

相关API

DAS产品的API接口

说明

DescribeHotBigKeys

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

DescribeTopHotKeys

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

DescribeTopBigKeys

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

DescribeHotKeys

获取Redis实例的热Key信息。