更新时间:2024-11-26 GMT+08:00

分析Redis实例大Key和热Key

大Key和热Key问题是Redis使用中的常见问题,本章节主要介绍对Redis实例进行大Key和热Key分析,通过大Key和热Key分析,可以监控到占用空间过大的Key,以及该Redis实例存储数据中被访问最多的Key。

大Key分析使用限制和说明:

  • 所有Redis实例都支持。
  • 在大Key分析时,会遍历Redis实例中的所有Key,因此分析所需要时间取决于Key的数量。
  • 在进行大Key分析时,建议在业务低谷期间进行,且不要与配置的自动备份时间重叠。
  • 如果是主备和集群实例,大Key分析是对备节点的分析,对实例性能影响较小。如果是单机实例,由于只有一个节点,是对主节点进行分析,客户访问性能会略有影响(不高于10%),所以建议在业务低谷期进行大Key分析。
  • 对于大Key分析结果,每个Redis实例默认最多保存100条记录(string类型保存top20,list/set/zset/hash类型保存top80,每种类型最多20条),当超过100条记录时会默认删除最老的分析记录,而存入最新的记录。同时,支持用户在控制台上手动删除无用的大Key分析记录。

热Key分析使用限制和说明:

  • 只有Redis 4.0及以上版本实例支持,并且实例maxmemory-policy参数必须配置为allkeys-lfu或者volatile-lfu。
  • 在热Key分析时,会遍历Redis实例中的所有Key,因此分析所需要时间取决于Key的数量。
  • 配置自动热key分析时,要考虑不要在业务高峰期进行,避免影响业务,同时也不要过了高峰期太久,避免分析结果不准确。
  • 热key分析是对于主节点的分析,在进行分析时,客户访问性能会略有影响(不高于10%)。
  • 对于热Key分析结果,每个Redis实例默认最多保存100条记录。当超过100条记录时会默认删除最老的分析记录,而存入最新的记录。同时,支持用户在控制台上手动删除无用的热Key分析记录。

建议在业务低峰时段执行大Key和热Key分析,降低CPU被用满的可能。

大Key分析操作步骤

  1. 登录分布式缓存服务管理控制台。
  2. 在管理控制台左上角单击,选择区域和项目。
  3. 单击左侧菜单栏的“缓存管理”。进入缓存管理页面。
  4. 单击需要缓存分析的Redis实例名称,进入该实例的基本信息页面。
  5. 单击"分析与诊断>缓存分析"页签。
  6. 在“缓存分析”页面的“大Key分析”页签,您可以立即对实例进行大Key分析或者设置定时任务,每日自动分析。
  7. 当分析任务结束后,可以单击分析列表“操作”列的“查看”,查看分析结果。

    您可以查询当前实例不同数据类型的大Key分析结果。

    分析结果中,string类型显示top20的记录,list/set/zset/hash类型显示top80的记录。具体分析记录,请以实际返回结果为准。

    表1 大Key分析结果参数说明

    参数名称

    参数说明

    Key名称

    大Key的名称。

    类型

    大Key的类型,包括string和list/set/zset/hash数据类型。

    大小

    大Key的Value的大小或元素的个数。

    分片

    集群实例大Key所在的分片。

    Database

    大Key所在的DB。

热Key分析操作步骤

  1. 登录分布式缓存服务管理控制台。
  2. 在管理控制台左上角单击,选择区域和项目。
  3. 单击左侧菜单栏的“缓存管理”。进入缓存管理页面。
  4. 单击需要缓存分析的Redis实例名称,进入该实例的基本信息页面。
  5. 单击"分析与诊断>缓存分析"页签。
  6. 在“缓存分析”页面的“热Key分析”页签,您可以对实例进行热Key分析或者设置定时任务,每日自动分析。

    如果无法执行热Key分析,您需要先将maxmemory-policy参数配置为allkeys-lfu或者volatile-lfu,才能执行热Key分析。如果是已经配置为allkeys-lfu或者volatile-lfu,即可立即进行热Key分析。

  7. 当分析任务结束后,可以单击分析列表“操作”列的“查看”,查看分析结果。

    您可以查询当前实例的热Key分析结果。

    热Key分析结果,每个Redis实例默认显示top100的记录。

    表2 热Key分析结果参数说明

    参数名称

    参数说明

    Key名称

    热Key的名称。

    类型

    热Key的类型,包括String、Hash、List、Set、Sorted Set等数据类型。

    大小

    热Key的Value的大小。

    频度

    表示某个key在一段时间的访问频度,会随着访问的频率而变化。

    该值并不是简单的访问频率值,而是一个基于概率的对数计数器结果,最大为255(可表示100万次访问),超过255后如果继续频繁访问该值并不会继续增大,同时默认如果每过一分钟没有访问,该值会衰减1。

    分片

    集群实例热Key所在的分片。

    DataBase

    热Key所在的DB。