Redis第五讲:详解 Redis 中 BigKey、HotKey 的发现与处理

简介: 在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为“大key”)及HotKey(下文将其称为“热key”)。大Key与热Key如果未能及时发现并进行处理,很可能会使服务性能下降、用户体验变差,甚至引发大面积故障。本文详解 Redis 中 BigKey、HotKey 的发现与处理。

文章目录

    • 1、大Key与热Key的定义
      • 1.1、什么是大Key
      • 1.2、什么是热Key
    • 2、大Key与热Key带来的问题
      • 2.1、大Key带来的常见问题
      • 2.2、热Key带来的常见问题
    • 3、大Key与热Key的常见产生原因
    • 4、找出Redis中的大Key与热Key
      • 4.1、使用Redis内置功能发现大Key及热Key
        • 1、通过Redis内置命令对目标Key进行分析
        • 2、通过Redis官方客户端redis-cli的bigkeys参数发现大Key
        • 3、通过Redis官方客户端redis-cli的hotkeys参数发现热Key
        • 4、通过业务层定位热Key
        • 5、使用monitor命令在紧急情况时找出热Key
      • 4.2、使用开源工具发现大Key
      • 4.3、通过阿里云数据库Redis控制台的CloudDBA功能发现大Key及热Key
    • Action1:商品中心的热点key
    • 5、大Key与热Key的处理
      • 5.1、大Key的常见处理办法
        • 1、对大Key进行拆分
        • 2、对大Key进行清理
        • 3、时刻监控Redis的内存水位
        • 4、对失效数据进行定期清理
        • 5、删除redis bigkey **(bigKey的问题)**
          • 1、Hash删除: hscan + hdel
          • 2、List删除: ltrim
          • 3、Set删除: sscan + srem
          • 4、SortedSet删除: zscan + zrem
        • 6、使用阿里云的Tair(Redis企业版)服务避开失效数据的清理工作
      • 5.2、热Key的常见处理办法
        • 1、在Redis Cluster结构中对热Key进行复制
        • 2、使用读写分离架构
        • 3、使用阿里云Tair的QueryCache特性
    • Action1:

在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为“大key”)及HotKey(下文将其称为“热key”)。大Key与热Key如果未能及时发现并进行处理,很可能会使服务性能下降、用户体验变差,甚至引发大面积故障。

1、大Key与热Key的定义

我们经常能够在公司内部的Redis开发使用规范手册,或网络中大量的Redis最佳实践文章里看到有关大Key、热Key的定义,然而这些资料中的大Key热Key判定标准却不尽相同,但可以明确的是,它们的判定维度是一致的:大Key通常都会以数据大小与成员数量来判定,而热Key则以其接收到的请求频率、数量来判定。

1.1、什么是大Key

通常我们会将含有较大数据或含有大量成员、列表数的Key称之为大Key,下面我们将用几个

你可能感兴趣的:(深入理解数据库,redis,数据库,缓存,大key,热点key)