Shopify 用 MySQL 替代 Redis 实现库存预留水平扩展:SKIP LOCKED 与复合主键的工程实践
在电商系统中,库存预留是一个看似简单却极其关键的操作。当买家点击"完成购买"时,系统必须在极短时间内保证所购商品仍然可用——如果出错,要么两个买家买到同一件最后的库存(商家不得不取消订单、发送道歉邮件并承担客服成本),要么告诉买家有货但实际无货(商家损失一笔本可完成的销售)。 在Shopify的规模下,任何一种错误都会快速放大。2025年黑色星期五,平台商家创下了每分钟500万美元销售额的纪录。每一次交易都涉及库存操作。 长期以来,Shopify的超卖保护系统(oversell protection)依赖Redis运行。当公司转向统一的数据库战略时,...