首先我的思路是这样的。 由于秒杀存在一定的并发,所以我的构想是这样的。
将秒杀的一台手机放到缓存中,然后在memcache里设置一个计数器来记录请求数,假如达到100个请求,之后的请求返回一个“秒杀结束”。然后在100个的请求中,谁先提交就是谁的。
现在问题是,由于本人比较菜,之前的项目中也没有用到过 mecache,所以怎么将手机放到缓存中,怎么设置计数器来记录请求数? 到这一步成功后, 那在之后的100个请求中是否是 最先的那个人提交后,便将缓存中的这台手机充缓存中清除。 之后的人提交判断缓存中没有库存,返回“秒杀结束”?
思路清晰,具体mecache这块怎么做?
有代码示例最好不过,万分感谢各位大侠...
将秒杀的一台手机放到缓存中,然后在memcache里设置一个计数器来记录请求数,假如达到100个请求,之后的请求返回一个“秒杀结束”。然后在100个的请求中,谁先提交就是谁的。
现在问题是,由于本人比较菜,之前的项目中也没有用到过 mecache,所以怎么将手机放到缓存中,怎么设置计数器来记录请求数? 到这一步成功后, 那在之后的100个请求中是否是 最先的那个人提交后,便将缓存中的这台手机充缓存中清除。 之后的人提交判断缓存中没有库存,返回“秒杀结束”?
思路清晰,具体mecache这块怎么做?
有代码示例最好不过,万分感谢各位大侠...
公司的秒杀没有使用mecache. 主要在数据方面下的功夫.
开始之前$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 '木有存货了';
}
提示一步一步完成了,看了服务 memcache的服务也启动了! 可是在phpinfo()中就是没有memcache 本人用的phpwind wamp 的集成环境!
秒杀与 memcache 没有什么关系,数据库足可胜任