秒杀系统优化

2019-10-16  本文已影响0人  榷奕

1. 在sql加上判断防止数据边为负数

这里面有一个Check约束,可以保证某一列的值一定要大于零什么的。

2. 数据库加唯一索引防止用户重复购买

每一次特定的秒杀都有秒杀订单表,在这个秒杀表里面,把用户id设成唯一索引(索引的一种并不是主键)
(从这里可以看出来Mysql的表级约束几乎啥也不会,这个东西就没学过,唉)

3. redis预减库存减少数据库访问

系统刚开始初始化的时候,读取所有商品数量,然后放在Redis里面做缓存,永久缓存或者撑过秒杀的这几天。
然后再访问的时候自然就是减Redis里面的缓存,就不用去减数据库了。

4. 请求先入队列缓冲,异步下单,增强用户体验

这一步还是正常,减数据库库存,生成订单插入,建立一个事务。
如果上一步redis成功了,这一步失败,那就不管,卖不出去就剩着呗,干嘛非要都卖出去。

上一篇 下一篇

猜你喜欢

热点阅读