首先我的思路是这样的。  由于秒杀存在一定的并发,所以我的构想是这样的。
    将秒杀的一台手机放到缓存中,然后在memcache里设置一个计数器来记录请求数,假如达到100个请求,之后的请求返回一个“秒杀结束”。然后在100个的请求中,谁先提交就是谁的。  
    现在问题是,由于本人比较菜,之前的项目中也没有用到过  mecache,所以怎么将手机放到缓存中,怎么设置计数器来记录请求数?  到这一步成功后,  那在之后的100个请求中是否是 最先的那个人提交后,便将缓存中的这台手机充缓存中清除。  之后的人提交判断缓存中没有库存,返回“秒杀结束”?
    思路清晰,具体mecache这块怎么做? 
    有代码示例最好不过,万分感谢各位大侠...

解决方案 »

  1.   

    这个没有做过,想做好肯定是挺复杂的.
    公司的秒杀没有使用mecache. 主要在数据方面下的功夫.
      

  2.   

    秒杀的话要用memc的自减方法
    开始之前$num = 1;
    $goods = 'phone';
    $memc->set($goods, $num);秒杀进行中
    $goods = 'phone';
    $left = $memc->decrement($goods);
    if($left === false) {
     echo '通信失败';
    } else if ($left >= 0) {
     echo '你秒杀成功了!';
    } else {
     echo '木有存货了';
    }
      

  3.   

    额,大侠,在下遇到问题了!   我在本地安装  memcache 按照http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2012/1015/11259.html
    提示一步一步完成了,看了服务 memcache的服务也启动了!   可是在phpinfo()中就是没有memcache 本人用的phpwind wamp 的集成环境!
      

  4.   

    php 需加载 memcache 扩展
    秒杀与 memcache 没有什么关系,数据库足可胜任
      

  5.   

    建议楼主可以了解下mysql的行级锁、表级锁、乐观锁、悲观锁等知识面,会对你的项目有帮助。