高性能是Redis最大的特点,保障Redis的性能是Redis使用过程中的必要举措。可能导致Redis性能问题的因素各种各样,而热点Key是其中最常见的因素之一。找出热点Key有利于进一步处理问题,本文介绍利用Redis 4.0版本新增特性查询热点Key的方法。
说明 云数据库Redis版已支持通过审计日志直接查询热点key,可以帮助您更方便、精准地查询到Redis服务中的热点key,详情请参见
查询历史热点Key。
背景信息
Redis 4.0新增了allkey-lfu和volatile-lfu两种数据逐出策略,同时还可以通过OBJECT命令来获取某个key的访问频度,如下图所示。
Redis 原生客户端也增加了--hotkeys选项,可以快速帮您找出业务中的热点Key。
前提条件
- 拥有与Redis实例互通的ECS实例;
- ECS中已经安装了Redis 4.0以上版本;
说明 目的为使用其自带的工具redis-cli。
- 云数据库Redis版实例的maxmemory-policy参数设置为volatile-lfu或allkeys-lfu。
说明 参数修改的方法请参见 参数说明及设置方法。
操作步骤
- 在有业务进行时,使用以下命令查询热点Key。
redis-cli -h r-***************.redis.rds.aliyuncs.com -a <password> --hotkeys
说明 本文使用 redis-benchmark模拟业务中大量写入的场景。表 1. 选项说明 名称 说明 -h 指定Redis的连接地址。 -a 指定Redis的认证密码。 --hotkeys 用来查询热点Key。
执行结果
执行命令后得到的结果示例如下:
执行结果的 summary部分即是分析得出的热点Key。