一、高频面试题
问题1:什么是缓存热点Key?它对Redis性能有什么影响?
参考答案:
缓存热点Key指的是短时间内被大量请求访问的缓存键。因为Redis是单线程处理请求的,一旦某个Key被高频访问,会导致线程长时间忙于处理它,其他请求只能排队等待,这会让Redis整体响应变慢、吞吐量下降。严重时可能引发连锁反应,比如下游服务因等待缓存响应超时,进而导致整个系统崩溃,也就是常说的雪崩效应。
第一步追问:
那怎么从现象上判断Redis可能出现了热点Key问题?
参考答案:
可以观察两个关键指标:一是通过INFO
命令看instantaneous_ops_per_sec
(每秒操作数)是否突然飙升,同时blocked_clients
(阻塞客户端数)明显增加;二是业务层面可能出现接口响应延迟变长、超时率上升,甚至部分服务报错。这时候就需要怀疑是否有热点Key了。
第二步追问:
如果线上Redis实例突然出现大量阻塞,除了热点Key