DAS支持缓存分析功能,通过分析Redis的备份文件,帮助您确认Redis内存占用以及大Key的分布情况,减少因Key倾斜引发的内存不足、性能下降等问题。针对Redis社区版集群架构,使用缓存分析功能还能显示各个节点内存占用的统计情况。

使用限制

  • 目标Redis实例已接入DAS,且实例接入状态为连接正常,详情请参见接入阿里云数据库实例接入自建数据库
  • 云数据库Redis仅支持社区版,且引擎版本需为2.8及以上。
  • 目前Redis实例暂不支持西南1(成都)、英国(伦敦)、德国( 法兰克福)、 印度(孟买)这些地域。

操作步骤

  1. 登录DAS控制台
  2. 在左侧导航栏中单击实例监控
  3. 实例监控页面,找到目标实例,单击实例ID,进入实例详情页。
  4. 在左侧选择请求分析>缓存分析
  5. 缓存分析页签右侧,单击立即分析
  6. 缓存分析对话框中,设置如下参数。
    zs
    配置 说明
    选择分析节点 选择需要执行缓存分析的节点ID。针对Redis社区版集群架构,您可以选择分析整个实例,也可以只选中某个节点进行分析。
    说明 当您选择分析整个实例时,若该实例的节点数超过8个,系统只会选择内存使用量最大的TOP8节点进行分析。
    分析方式 您可以选择分析方式为使用上一个备份文件新建备份,并使用最新的备份进行分析。
  7. 单击确定
  8. 缓存分析列表找到已完成的分析任务,在右侧操作栏中,单击详情,查看如下分析结果:
    • 基本信息:目标实例基本属性和分析方法等情况。
    • 相关节点:Redis社区版集群架构内各个节点的内存情况和Key统计信息。
      说明 只有选择分析整个Redis社区版集群架构实例时,才会展示该信息。
    • 详情:目标实例的内存占用情况、Key内存占有的近一周日均增长量Key总数量Key内存占有情况Key数量分布情况Elements内存占用情况Elements数量分布情况Key过期时间分布 (内存)Key过期时间分布 (数量),以及内存占有量、总数量、Key前缀在前100的大Key信息。

常见问题

  • Q:为什么缓存分析结果展示的Key内存占有会比实际使用的内存小?

    A:因为缓存分析结果实际只是解析了Key和对应value在RDB中序列化后占用的大小,这个只占用了used_memory中的一部分,used_memory还包含了如下部分:

    • Key和value所对应的struct和指针大小。在jemalloc分配后,字节对齐部分所占用的大小也没计算在used_memory中,例如在2.5亿Key的数量下,struct、指针、字节对齐这三部分的大小加起来约有2~3 GB。
    • 客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog,这些也没计算到缓存分析中。
  • Q:Redis缓存分析的前缀分隔符是什么?

    A:目前Redis缓存分析的前缀分隔符是按照固定的前缀:;,_-+@=|# 区分的字符串。