一、高频面试题
- 什么是缓存热点Key?它会对Redis性能产生哪些影响?
缓存热点Key是指在某段时间内,被大量请求访问的缓存Key。由于Redis是单线程模型,大量针对热点Key的请求会导致该线程长时间处于忙碌状态,其他请求只能排队等待处理,从而使Redis整体响应延迟增加,吞吐量下降,甚至可能导致系统出现雪崩效应,影响整个业务的正常运行。 - 如何识别Redis中的热点Key?
- 利用Redis自带的
INFO
命令,通过分析instantaneous_ops_per_sec
(每秒执行的操作数)和blocked_clients
(阻塞的客户端数量)等指标,结合业务访问日志,初步判断是否存在热点Key。 - 使用Redis的
SCAN
命令遍历所有Key,统计每个Key的访问频率,找出访问次数较高的热点Key。但这种方式在Key数量庞大时可能会对Redis性能造成一定影响,可采用异步方式或分批次进行。 - 借助一些中间件或工具,如Redis-Clients中的客户端连接池,在客户端层面统计Key的访问次数,定位热点Key。
- 利用Redis自带的