秒杀
秒杀开始前
前端提前使用cdn缓存页面信息,防止客户端频繁刷新,把所有请求都落在数据库导致数据库崩掉。数据方面,要提前把秒杀要用的数据存在Redis中。
秒杀进行中
Redis方面,因为用户请求多,但是商品少。把商品以hash的形式存储在Redis中。查询命令都落在Redis,防止数据库命令过多。查询商品和扣减库存要有原子性,否则其他客户可能查询到Redis旧库存。并且可以开启限流和熔断。甚至前端也可以做判断,用概率直接把一部分用户的请求不发送给后端,而是给用户展现秒杀失败。购买成功的用户可以交给数据库处理,因为数量也不多。
秒杀结束
Redis也要保存一段时间缓存,防止购买成功的用户刷新查看进度,未购买成功的用户反复刷新查看。
Redis集群数量和吞吐量的关系
Redis如果集群达到一定数量,那么集群数量再增加,吞吐量却会降低,速度会变慢。因为集群间会通过网络通信进行信息交流,如果集群过多的话,网络通信就会过去频繁,导致集群的速度变慢。