redis watch 加 事务实现秒杀
2024-09-05 05:52:57
<?php
//redis watch 加 事务实现秒杀
$redis = new redis();
$result = $redis->connect('10.10.10.119', 6379);
$redis = new redis();
$result = $redis->connect('10.10.10.119', 6379);
$redis->watch("mywatchkey"); //必须先watch 后get
$mywatchkey = $redis->get("mywatchkey");
$rob_total = 100; //抢购数量
$rob_total = 100; //抢购数量
if($mywatchkey<$rob_total){
$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;
}
}
$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;
}
}
?>
最新文章
- 第五章——搭建S3C6410开发板的测试环境
- 关于Linux与windows传递文件乱码问题
- 关于Guid
- Leetcode 58 Length of Last Word 字符串
- MyBatis XML 映射配置文件
- Android activity_main.xml删除边缘距离,充满屏幕
- PHP使用SOAP调用.net的WebService数据
- [Papers]NSE, $u$, Lorentz space [Sohr, JEE, 2001]
- BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
- 开源语音识别系统 Simon
- wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码
- CSS3 radial-gradient 径向渐变属性 实现重复半圆角内边框
- target-densitydpi=device-dpi会使其他ui插件布局变小
- 腾讯短信服务精简版(PHP )
- Wireshark显示结果过滤基本语法
- JavaScript学习day01
- cookie的认识
- 关于mybatis中传入一个List,字符串数组,或者Map集合作为查询条件的参数
- 用SAX解析xml文件,java
- bash:command not found解决方法
热门文章
- 算法笔记--可撤销并查集 &;&; 可持久化并查集
- NLP传统基础(2)---LDA主题模型---学习文档主题的概率分布(文本分类/聚类)
- P1006 传纸条[棋盘DP]
- 分布式文件系统FastDFS架构认知
- 捕获错误并处理try-catch
- 15、Spring Boot 2.x 集成 Swagger UI
- How to change the default browser to debug with in Visual Studio 2008?
- python基础-垃圾回收机制
- nodejs基础(回调函数、模块、事件、文件读写、目录的创建与删除)
- CF1197A