一、什么是热Key?
热 key 问题就是突然有几十万的请求去访问 redis 上的某个特定 key,那么这样会造成流量过于集中,达到物理网卡上限,从而导致这台 redis 服务器直接宕机。
Redis 中的热点 key 是指被大量请求访问的某些键,通常是由于这些键存储了热门数据,如热门商品、秒杀场景、热门文章、用户会话等。热点 key 的出现可能会带来一些问题和危害,以下是其介绍和应对方法:
- 请求集中:热点 key 会导致大量请求集中在少数几个 key 上,增加了对这些 key 的访问压力。
- 性能下降:由于请求集中,热点 key 的访问频率较高,可能会导致 Redis 服务器的性能下降,甚至造成 Redis 集群的崩溃。
- 缓存击穿:如果某个热点 key 在缓存中过期,且被大量请求访问,那么这些请求可能会直接落到数据库上,导致数据库负载剧增,甚至可能导致数据库宕机。
- 数据不一致:如果热点 key 的数据被频繁修改,那么可能会导致数据不一致的问题,尤其是在进行分布式部署时。
- 主从同步延迟:如果Redis处于主从模式,热点Key的频繁访问会导致主节点压力增加,进而导致主从同步延迟,产生数据不一致的风险。这种情况在高并发场景下尤为明显。