redis使用watch完成秒杀抢购功能
来源:互联网 发布:淘宝项目计划书 编辑:程序博客网 时间:2024/05/14 05:38
Redis使用watch完成秒杀抢购功能:
使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表。
它的优点如下:
首先选用内存数据库来抢购速度极快。
速度快并发自然没不是问题。
使用悲观锁,会迅速增加系统资源。
比队列强的多,队列会使你的内存数据库资源瞬间爆棚。
使用乐观锁,达到综合需求。
我觉得以下代码肯定是你想要的。
[php] view plain copy
print?
<?php header("content-type:text/html;charset=utf-8"); $redis = new redis(); $result = $redis->connect('10.10.10.119', 6379); $mywatchkey = $redis->get("mywatchkey"); $rob_total = 100; //抢购数量 if($mywatchkey<$rob_total){ $redis->watch("mywatchkey"); $redis->multi(); //设置延迟,方便测试效果。 sleep(5); //插入抢购数据 $redis->hSet("mywatchlist","user_id_".mt_rand(1, 9999),time()); $redis->set("mywatchkey",$mywatchkey+1); $rob_result = $redis->exec(); if($rob_result){ $mywatchlist = $redis->hGetAll("mywatchlist"); echo "抢购成功!<br/>"; echo "剩余数量:".($rob_total-$mywatchkey-1)."<br/>"; echo "用户列表:<pre>"; var_dump($mywatchlist); }else{ echo "手气不好,再抢购!";exit; } } ?>
0 0
- redis使用watch完成秒杀抢购功能
- REDIS实践之使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch完成秒杀抢购功能
- redis使用watch秒杀抢购思路
- redis使用watch秒杀抢购思路
- redis使用watch秒杀抢购思路
- redis使用watch秒杀抢购思路
- redis使用watch秒杀抢购思路
- Redis使用watch完成抢购功能(基础版)
- Redis实现高并发下的抢购、秒杀功能
- Redis实现高并发下的抢购、秒杀功能
- 从数据结构角度分析foreach效率比for循环高的原因
- g_pIMalloc 全局变量
- hadoop--之mapreduce框架流程
- 子查询和连接
- 创建maven项目 并搭建简单的springMVC
- redis使用watch完成秒杀抢购功能
- Block
- IDEA之svn
- Unity3D协程进阶-原理剖析
- Linux常用命令
- 浅谈CSS选择器中的空格
- poj1273(网络流代码)
- Java循环链表实现约瑟夫环
- HDU 1102 Constructing Roads(最小生成树)