上一题下一题

缓存热点 Key 在大促期间被频繁访问导致 Redis 单节点 CPU 飙高,如何定位并缓解

旗舰版
来源:pdd初级工程师Redis性能监控依赖指标分析负载均衡与连接池调优热点Key
答案解析

大促期间 Redis 单节点 CPU 飙高,我一般会先判断是不是热点 Key,而不是一上来就扩容。

定位上可以从几个层面看:

先看 Redis 实例指标,比如 CPU、QPS、网络流量、连接数、命令耗时、慢查询,确认是不是某个节点明显异常。 看 INFO commandstats,判断是不是某类命令特别高,比如大量 GET、HGET、ZSET 操作。 如果 Redis 开启了 LFU 策略,可以用 redis cli hotkeys 找访问频率高的 Key。 可以结合业务侧日志或者埋点,在客户端统计 Key 访问次数,这个通常最准确,尤其是大促接口访问链路比较清楚。 也可以临时用 MONITOR 抓命令分析,但这个命令开销很大,线上高峰期要非常谨慎,一般只短时间在低峰或从节点上使用。 如果使用了代理层,比如 Codis、Twemproxy、Redis Cluster proxy,也可以从代理层统计热点 Key 或热点 slot。

缓解方式要看这个热点 Key 是读热点还是写热点。

如果是读热点,比如商品详情、活动配置、库存展示

登录后查看完整内容