zoukankan      html  css  js  c++  java
  • 利用乐观锁及redis解决电商秒杀高并发基本逻辑

    解决秒杀高并发问题方法很多,如悲观锁,消息队列等……

    利用乐观锁及redis解决秒杀高并发基本逻辑

    //初始化redis

    $redis = new Redis();

    // 设置键值,起到监视作用  执行事务之前,判断被修改,回滚

    $redis->watch('sales');

    // 获取销量

    $sales = $redis->get('sales');

    // 如果销量存在,先删除,false

    // $redis->del('sales');

    // 库存,秒杀两件产品

    $store = 2;

    // 判断销量是否大于等于库存

    if($sales >= $store){
        // 结束
        exit('活动结束');
    }

    // 事务块内多条命令会按先后顺序放入一个队列中,最后有EXEC命令原子性的执行

    //redis开启事务

    $reids->multi();

    // 更新销量

    $redis->set('sales', $sales+1);

    $res = $redis->exec();

    // 记录到redis里面,用守护进程 swoole多进程去执行 !!!

    if($res){
        // 减库存冀其他操作
    }

  • 相关阅读:
    Linux与Windows命令的比较
    操作系统的启动过程
    Spyder快捷键
    pytoch的最佳打开方式
    操作系统逻辑结构
    插值法
    bzoj3509[CodeChef]COUNTARI
    bzoj2969 矩形粉刷
    hdu5575 Discover Water Tank
    bzoj3473字符串&bzoj3277串
  • 原文地址:https://www.cnblogs.com/life_lt/p/10907716.html
Copyright © 2011-2022 走看看