零点秒杀活动大量客户涌入,直接导致 Redis 雪崩,怎样避免出现这种情况?
回答·4
最热
最新
- 开局就血崩,怎么避免这样的情况发生。首先,雪崩是什么? 在同一时刻,大面积 key 失效,请求全部打进 db 或者类似这样的一些情况。如何避免呢? 1:对于秒杀活动来说,热 key 是可以预估的,提前开启缓存预热,将需要进入缓存的数据加入到 redis 中 2:避免缓存同时失效,将 key 的过期时间不要设置为同一时刻,可以设置不过期或者随机时间(根据你秒杀活动大概需要的时间计算) 3:保底,当 key 失效,在并发时刻的数据重新加入缓存的问题,需要使用分布式锁或者其他锁机制,更新缓存。 4:redis 集群,大量用户可能导致 redis 扛不住,或者 key 都在一台 redis 上,将 key 分散到不同机器,分担压力。
- 不做零点秒杀活动,就不会崩,从根本解决问题 o.0
- 1. Redis key 避免同一时刻过期 2. 限流:避免 redis 过载 3. Redis Replication:分摊焦点数据压力 4. 分布式锁:避免 redis 在装载过程中,大量请求落库
- 雪崩说明 大量的缓存在这一时刻失效 两方面考虑吧: 1,缓存有效期尽量避免设置成同一时间 2,做限流,参考令牌桶