redis-如何处理热key问题

热key在Redis中引发流量过大和实例压力问题,可能导致服务稳定性下降甚至实例宕机。解决方案包括在上游添加本地缓存以分散流量,以及通过key拆分来避免请求集中在单一实例。此外,扩展从实例也是缓解问题的方法,但要注意Redis的同步机制。
摘要由CSDN通过智能技术生成

什么是热key

redis中的某个key访问量过大

热key导致的问题

某个 Key 的数据一定是存储到后端某台服务器的 Redis 单个实例上(只说主实例),如果对这个 Key 突然出现大量的请求操作,会导致流量过大,导致到达这个redis实例的上限,即CPU到达100%,或者是网卡流量达到上限等,进而影响这个key以及这个redis实例上的其他key的请求,严重可能导致实例宕机。即出现超时等情况,影响服务稳定性、可靠性等。如果redis实例挂了,可能导致其他问题,如果redis作为缓存使用,redis实例挂了,可能导致大量请求到数据库上,导致数据库雪崩,拒绝服务等。

如何解决?

先分析原因

  1. 流量过大
  2. 请求都打到同一个实例上
    那么问题确定了,接下来就说明一下如何解决

如何解决流量过大?

核心就是把流量兜在上游。即加缓存,不命中缓存的才到redis下游。可以在上游加本地缓存。这个上游可能是请求的服务本身或者proxy层

如何解决请求都打到同一个实例上

  1. 将key打散,即一个key变成多个key,下面大致写一下
//生成随机数
random := 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值