Redis支撑秒杀场景的关键技术和实践都有哪些

90 阅读1分钟

第一阶段是秒杀活动前

在这个阶段,用户会不断刷新商品详情页,这会导致详情页的瞬时请求量剧增。这个阶段的应对方案,一般是尽量把商品详情页的页面元素静态化,然后使用 CDN 或是浏览器把这些静态化的元素缓存起来。这样一来,秒杀前的大量请求可以直接由 CDN 或是浏览器缓存服务,不会到达服务器端了,这就减轻了服务器端的压力。在这个阶段,有 CDN 和浏览器缓存服务请求就足够了,我们还不需要使用 Redis。

第二阶段是秒杀活动开始

这个阶段的操作就是三个:库存查验、库存扣减和订单处理。

订单处理可以在数据库中执行,但库存扣减操作,不能交给后端数据库处理。

我们需要直接在 Redis 中进行库存扣减。具体的操作是,当库存查验完成后,一旦库存有余量,我们就立即在 Redis 中扣减库存。而且,为了避免请求查询到旧的库存值,库存查验和库存扣减这两个操作需要保证原子性。

image.png


此文章为9月Day1学习笔记,内容来源于极客时间《redis核心技术与实战》