双十一大促是怎么做MySQL热点数据高效更新的? MySQL的热点数据更新问题,一直都是行业内的一个难题,对于秒杀场景至关重要。一旦处理不好,就可能会导致数据库被打垮。 通常来说,对于热点问题,都是选择使用Redis来抗,比如秒杀场景借助他的单线程高并发能力来做预扣减。 常规方案 但是,引入Redis又会带来数据不一致的问题,进而会导致超卖和少卖,如果一定要在MySQL这个层面上,抗住高并发的热点数据并发更新,有什么方案呢?拿库存扣减举例 1、库 数据运维 2023-07-17 大猫
为什么用分布式锁? Redis和Zookeeper 两种实现方案有何不同? 为什么用分布式锁? 系统 A 是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。 由于系统有一定的并发,所以会预先将商品的库存保存在 Redis 中,用户下单的时候会更新 Redis 的库存。 此时系统架构如下: 但是这样一来会产生一个问题:假如某个时刻,Redis 里面的某个商品库存为 1。 此时两个请求同时到 数据运维 2023-07-12 剑圣无痕
基于MySQL和Redis扣减库存的实践 目录 背景 环境搭建 后台系统 中间件 测试工具 扣减模式 基于数据库行锁 + CAS 实现库存的扣减 基于 Redis 实现库存的扣减 总结 背景 在很多情况下,扣减库存是一个十分常见的需求,例 目录背景环境搭建后台系统中间件测试工具扣减模式基于数据库行锁 + CAS 实现库存的扣减基于 Redis 实现库存的扣减总结 背景 在很多情况下,扣减库存是一个十分常见的需求,例如:学生选课系统中课程数 数据运维 2023-06-09 张二河
MySQL中的乐观锁,悲观锁和MVCC全面解析 前言 在数据库的实际使用过程中,我们常常会遇到不希望数据被同时写或者读的情景,例如秒杀场景下,两个请求同时读到系统还有库存1个,然后又先后把库存更新为0,这时候就会出 前言 在数据库的实际使用过程中,我们常常会遇到不希望数据被同时写或者读的情景,例如秒杀场景下,两个请求同时读到系统还有库存1个,然后又先后把库存更新为0,这时候就会出现超卖的情况,这时候货物的实际库存和我们的记录就会对应不上了。 为 数据运维 2023-05-01 大树