php mysql 行锁 秒杀_为啥如今php做秒杀都用redis,mysql的悲观锁不一样可以解决超卖问题吗 ?...

本文探讨了为何PHP秒杀常选择Redis而非MySQL,强调了Redis在减少MySQL压力、性能提升(O(1) vs O(log n))和快速开发成本上的优势,指出使用Redis的锁机制能拦截无效请求,从而提高系统的稳定性和响应速度。
摘要由CSDN通过智能技术生成

为啥如今php做秒杀都用redis,mysql的悲观锁不一样可以解决超卖问题吗 ?

回答

解决超卖只是秒杀的一小部分啊,重要的是,如果你不限流直接让秒杀的库存操作进入业务系统甚至数据库,你确定你的业务系统和数据库能撑住?而秒杀接入redis很靠前,不过是做令牌系统还是库存操作,都可以帮你拦截住大量的大量的无效或者无库存后的请求进入后段业务系统

有get你提问的问题是什么?

其实别说redis、mysql 甚至文件都可以做秒杀

问题 为什么 redis比mysql更适合

第一点 降低mysql的压力

web应用的架构 是由 n服务器 + mysql 组成的 机器可以无限横向扩容 mysql只有一台 所以任何的义务考虑都需要考虑mysql这一点 如果用redis做锁可以较少大部分无效请求落到数据库上

第二点 性能上

mysql的索引是b+树 大家应该都清楚 时间复杂度O(Log(n)) 那么 如果redis 用set、get、incr的方式 时间复杂度是 O(1) 从这一点 redis > mysql

第三点 实现上

mysql的开发需要建表 以后拓展啥的 还要alter table 啥的 大家都知道更新生产环境的表是多么痛苦 redis可能就舒服的要死了 具体不细说 自己可以品下 用redis的开发成本和mysql开发成本

“解决超卖问题” 确实可以。

但是以牺牲高可用为代价。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值