什么是热Key问题,如何解决热key问题

当我们使用Redis作为存储时,如果发生一些特殊情况,比如明星官宣的突发事件,世界杯等重大活动,双十一的活动秒杀等等,就会出现特别大的流量,并且会导致某些热词、商品等被频繁的查询和访问。

如果在同一个时间点上,Redis中的同一个key被大量访问,就会导致流量过于集中,使得很多物理资源无法支撑,如网络带宽、物理存储空间、数据库连接等。

这也是为什么某某明星官宣之后,微博上面就会出现宕机的情况。有时候这种宕机发生后,其他功能都是可以使用的,只是和这个热点有关的内容会无法访问,这其实就和热点数据有关系了。

对于热key的处理,主要在于事前预测和事中解决。

对于事前预测就是根据一些根据经验,提前的识别出可能成为热key的Key,比如大促秒杀活动等。

在事中解决方面,主要可以考虑,热点key拆分、多级缓存、热key备份、限流等方案来解决。

多热算热,有没有标准?

到底"多热算热",这个其实需要根据实际的业务情况以及你自己的缓存服务器的整体存储情况而定的。

JD有一个框架叫做hotkey,他就是专门做热key检测的,他的热key定义是在单位时间内访问超过设定的阈值频次就是热key,这个阈值需要业务自己设定,并不断的调整和优化。

热key的定义,通常以其接收到的Key被请求频率来判定,例如:

  • QPS集中在特定的Key:Re

你可能感兴趣的:(什么是热Key问题,如何解决热key问题)