- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
-
常见问题
- 实例类型/版本
- 实例特性
- 安全性
-
客户端和网络连接
- DCS实例支持公网访问吗?
- Redis连接失败问题排查和解决
- DCS实例是否支持跨VPC访问?
- Redis公网访问所需弹性IP是否收费?
- Redis连接时报错:“(error) NOAUTH Authentication required”。
- 客户Http的Server端关闭导致Redis访问失败
- 客户端出现概率性超时错误
- 使用Jedis连接池报错如何处理?
- 如何使用Redis-desktop-manager访问Redis实例?
- 使用SpringCloud时出现ERR Unsupported CONFIG subcommand怎么办?
- 客户端无法使用域名连接DCS缓存实例时如何处理?
- 本地环境是否可以连接缓存实例?
- 使用Redis实例的发布订阅(pubsub)有哪些注意事项?
- Redis 3.0实例公网开关被关闭是什么原因?
- 使用短连接访问Redis出现“Cannot assign requested address”错误
- 连接池选择及Jedis连接池参数配置建议
- 如何解决Lettuce 6.x版本客户端使用DCS实例兼容性问题?
- 应该选择域名还是IP地址连接Redis实例?
- 主备实例的只读地址是连接到主节点还是备节点?
-
Redis使用
- 是否支持CPU架构的变更?
- 实例是否支持变更可用区
- Redis实例能否修改VPC和子网?
- 实例是否支持自定义或修改端口?
- 实例是否支持修改访问地址?
- 实例无法删除是什么原因?
- 集群实例启动时间过长是什么原因?
- 使用redis_exporter出错怎么办?
- 什么是预留内存,如何配置预留内存?
- 创建的缓存实例为什么可使用内存比实例规格少一些?
- Redis 3.0 Proxy集群不支持redisson分布式锁的原因
- DCS Redis有没有后台管理软件?
- DCS缓存实例的数据被删除后,能否找回?
- 为什么实例实际可用内存比申请规格小而且已使用内存不为0?
- 如何查看Redis内存占用量
- Cluster集群实例容量和性能未达到瓶颈,但某个分片容量或性能已过载是什么原因?
- 访问Redis报OOM错误提示
- 不同编程语言如何使用Cluster集群客户端
- 使用Cluster的Redis集群时建议配置合理的超时时间
- 读取redis数据报超时错误
- hashtag的原理、规则及用法示例
- Redis key丢失是什么原因
- 重启实例后缓存数据会保留吗?
- 如何确认实例是单DB还是多DB
- Proxy集群开启多DB的使用限制及操作方式
- 如何创建多DB的Proxy集群实例?
- 扩容缩容与实例升级
-
数据备份/导出/迁移
- DCS实例是否兼容低版本Redis迁移到高版本
- 不同类型的操作系统间进行数据传递和操作,需要注意什么?
- 源Redis使用了多DB,能否迁移数据到集群实例?
- 源Redis迁移到集群实例中有哪些限制和注意事项?
- 在线迁移需要注意哪些?
- 在线迁移能否做到完全不中断业务?
- 在线迁移实例源端报“Disconnecting timedout slave”和“overcoming of output buffer limits”
- 如何导出Redis实例数据?
- 使用Rump工具迁移数据,命令执行后无报错,但Redis容量无变化
- 是否支持控制台导出RDB格式的Redis备份文件?
- 缓存实例备份文件如何存放?备份文件的数量是否有限制?
- Redis在线数据迁移是迁移整个实例数据么?
- AOF文件在什么情况下会被重写
- Redis迁移失败有哪些常见原因?
- 一个数据迁移能迁移到多个目标实例么?
- 怎么放通SYNC和PSYNC命令?
- 迁移或导入备份数据时,相同的Key会被覆盖吗?
- Cluster集群实例使用内置key且跨slot的Lua脚本时迁移失败
- 迁移故障处理
- 数据迁移失败问题排查
- Memcached如何迁移?
- 是否支持Memcached和Redis之间实例数据的迁移?
- 大Key/热Key分析/过期Key扫描
- Redis命令
- 监控告警
- 主备倒换
- 创建实例和权限
- Memcached使用
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
查找Redis实例大Key和热Key
大Key和热Key是Redis使用中经常遇到的问题,本章节主要介绍DCS管理控制台的大Key和热Key分析功能,通过该功能可以分别监控到Redis实例中占用空间最大的Key和存储数据中被访问最多的Key。
- 大Key可以分为两种情况:
- Key的Value占用存储空间较大。一般单个String类型的Key大小达到10KB,或者集合类型的Key总大小达到50MB,则被定义为大Key。
- Key的元素数量较多。一般集合类型的Key中元素超过5000个,则被定义为大Key。
- 热Key通常指当一个Key的访问频率或资源占用显著高于其他Key时,则称之为热Key。例如:
- 某个集群实例一个分片每秒处理10000次请求,其中有3000次都是操作同一个Key。
- 某个集群实例一个分片的总带宽使用(入带宽+出带宽)为100Mbits/s,其中80Mbits是由于对某个Hash类型的Key执行HGETALL所占用。
约束与限制
执行大Key和热Key分析会消耗CPU,建议在业务低峰时段执行大Key和热Key分析,降低CPU被用满的可能。
大Key分析使用限制和说明:
- 在大Key分析时,会遍历Redis实例中的所有Key,因此分析所需要时间取决于Key的数量。
- 如果要进行大key分析,建议在业务低谷期间进行,且不要与配置的自动备份时间重叠。
- 如果是主备、读写分离和集群实例,大Key分析是对备节点的分析,对实例性能影响较小。如果是单机实例,由于只有一个节点,是对主节点进行分析,客户访问性能会略有影响。
- 对于大Key分析任务,每个Redis实例默认最多保存100次分析任务的记录,当超过100条记录时会默认删除最老的分析记录,而存入最新的记录。同时,支持用户在控制台上手动删除无用的大Key分析记录。
热Key分析使用限制和说明:
- 只有Redis 4.0及以上版本的实例支持热Key分析。
- 实例maxmemory-policy参数必须配置为allkeys-lfu或者volatile-lfu。
- 在热Key分析时,会遍历Redis实例中的所有Key,因此分析所需要时间取决于Key的数量。
- 配置自动热key分析时,不要在业务高峰期进行,避免影响业务,同时也不要过了高峰期太久,避免分析结果不准确。
- 热Key分析是对实例主节点的分析,在进行分析时,客户访问性能会略有影响。
- 对于热Key分析任务,每个Redis实例默认最多保存100次分析任务的记录。当超过100条记录时会默认删除最老的分析记录,而存入最新的记录。同时,支持用户在控制台上手动删除无用的热Key分析记录。
分析查找大Key
- 登录分布式缓存服务管理控制台。
- 在管理控制台左上角单击
,选择实例所在的区域。
- 单击左侧菜单栏的“缓存管理”,进入实例信息页面。
- 单击需要缓存分析的Redis实例名称,进入该实例的基本信息页面。
- 选择“分析与诊断 > 缓存分析”进入“缓存分析”页面。
- 在“大Key分析”页签下,您可以选择立即对实例进行大Key分析或者设置定时任务,每日自动分析。
- 当分析任务结束后,单击分析列表“操作”列的“查看”,您可以查询当前实例不同数据类型的大Key分析结果。
单击分析列表“操作”列的“下载”或“删除”,也可以下载或删除分析结果。
说明:
大Key分析结果显示数据大小最大的前100条Key记录(string类型显示20条,list/set/zset/hash类型显示80条)。
图1 查看大Key分析结果(string类型)图2 查看大Key分析结果(list/set/zset/hash类型)表1 大Key分析结果参数说明 参数名称
参数说明
Key名称
大Key分析结果中Key的名称。
类型
Key的类型,包括String、Hash、List、Set、ZSet等数据类型。
大小
Key的Value大小,单位为:Bytes。
数量
Key中元素的数量,仅list/set/zset/hash类型的数据显示该参数。单位为:Counts。
Database
Key所在的Database。
分析查找热Key
- 登录分布式缓存服务管理控制台。
- 在管理控制台左上角单击
,选择实例所在的区域。
- 单击左侧菜单栏的“缓存管理”,进入实例信息页面。
- 单击需要缓存分析的Redis实例名称,进入该实例的基本信息页面。
- 选择“分析与诊断 > 缓存分析”进入“缓存分析”页面。
- 在“热Key分析”页签下,您可以选择立即对实例进行热Key分析或者设置定时任务,每日自动分析。
说明:
如果是2020年7月之前创建的Redis实例,且没有修改过该参数,则maxmemory-policy默认值为noeviction,如果是2020年7月之后创建的实例,maxmemory-policy默认值为volatile-lru。您需要先将maxmemory-policy参数配置为allkeys-lfu或者volatile-lfu,才能执行热Key分析。您可以在“实例配置>参数配置”下修改参数。allkeys-lfu和volatile-lfu的具体介绍请参考逐出策略。
- 当分析任务结束后,单击分析列表“操作”列的“查看”,可以查询当前实例的热Key分析结果。
单击分析列表“操作”列的“下载”或“删除”,也可以下载或删除分析结果。
说明:
热Key分析结果,显示在分析时间段内被访问频度最高的前100条Key记录。
图3 查看热Key分析结果表2 热Key分析结果参数说明 参数名称
参数说明
Key名称
热Key分析结果中Key的名称。
类型
Key的类型,包括String、Hash、List、Set、Zset等数据类型。
大小
Key的Value的大小,单位为:Bytes。
频度
表示Key在一段时间(一般指1分钟)的访问频度,会随着访问的频率而变化。
该值并不是简单的访问频率值,而是一个基于概率的对数计数器结果,最大为255(可表示100万次访问),超过255后如果继续频繁访问该值并不会继续增大,同时默认如果每过一分钟没有访问,该值会衰减1。
分片
Key所在的分片。
说明:
只有集群实例显示该参数。
Database
Key所在的DB。