使用Redis實現秒殺功能
<?php
$id = 1;
$pdo=new PDO("mysql:host=127.0.0.1;dbname=test","root","root");
$pdo->exec("UPDATE `ms_goods` SET `nums`=`nums`-1 WHERE id=$id ");
echo "miao sha success";
// 队列 链表 list :array
// array:先进后出
// list: 先进先出
?>
<?php
// 库存复数 : 并发量足够大
$r=new Redis(); $r->connect("127.0.0.1",6379); $res=$r->rpop("mslist"); //right 右:出队 ---> if(!$res){
echo "out of print";
}else{
$id = 1;
$pdo=new PDO("mysql:host=127.0.0.1;dbname=test","root","root");
$pdo->exec("UPDATE `ms_goods` SET `nums`=`nums`-1 WHERE id=$id ");
echo "miao sha success";
} // 队列 链表 list :array
// array:先进后出
// list: 先进先出
?>
<?php
$id = 1; // 活动id
$pdo=new PDO("mysql:host=127.0.0.1;dbname=test","root","root");
$num = $pdo->query("SELECT * FROM `ms_goods` WHERE id = $id ")->fetch();
$nums = $num['nums']; //库存 // 库存复数 : 并发量足够大
$r=new Redis(); $r->connect("127.0.0.1",6379); for($i=1;$i<=$nums;$i++){
$r->lpush("mslist","$i"); //left 左:入队 ---->
} echo "[nums:{$nums}] list: miaosha start ...";
?>
<?php
$id = 1;
$pdo=new PDO("mysql:host=127.0.0.1;dbname=test","root","root");
$res=$pdo->query("SELECT * FROM `ms_goods` where id = $id")->fetch(PDO::FETCH_ASSOC);
?> <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>秒杀功能</title>
</head>
<body> <center>
<h1>抢购活动,热卖,促销</h1>
<div style="width:320px;height:160px;border:1px solid #ccc;">
<img src="tel_5.jpg" />
</div>
<p>库存:<?php echo $res['nums']; ?></p>
<button id="msbtn">秒杀</button>
</center> </body>
</html> <script type="text/javascript">
document.getElementById('msbtn').onclick=function(){
window.location.href = 'doms.php';
}
</script>
使用Redis實現秒殺功能的更多相关文章
- ASP.NET MVC 4.0 学习2-留言板實現
新增專案實現留言板功能,瞭解MVC的運行機制 1,新增專案 2,添加數據庫文件message.mdf Ctrl+W,L 打開資料庫連接,添加存放留言的Atricle表 添加字段,後點擊&quo ...
- Neo4j中實現自定義中文全文索引
資料庫檢索效率時,一般首要優化途徑是從索引入手,然後根據需求再考慮更復雜的負載均衡.讀寫分離和分散式水平/垂直分庫/表等手段:索引通過資訊冗餘來提高檢索效率,其以空間換時間並會降低資料寫入的效率,因此 ...
- Jquery scrollTop animate 實現動態滾動到頁面頂部
這個方法之前都是用的錨點實現的,但是效果僵硬,動感不足! 之後參考了一些網站,發現都是用的js,於是自己想到用jquery 來做一個插件也來實現以下這個小功能. $.fn.backTop = func ...
- Redis服务搭建与基础功能示例
一.Redis简介 Redis是一个非关系型远程内存数据库,它也是一个Key-value模型的数据库.Redis支持5种数据类型(string.list.set.sorted set.hash),可以 ...
- 简单实现Redis缓存中的排序功能
1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...
- linux下c++實現簡單的生產者消費者隊列模式
引言 生產者消費者是一個經典的模式 利用生產者,消費者和緩衝區降低了生產者和消費者之間的的耦合度 便於對生產者和消費者的修改 下面記錄的是一個經典的單一生產者多消費者的模式 設計思路 以隊列做為緩衝區 ...
- 【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能
springboot+redis实现发布订阅功能,实现redis的消息队列的功能 参考:https://www.cnblogs.com/cx987514451/p/9529611.html 思考一个问 ...
- redis(四)--简单实现Redis缓存中的排序功能
在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...
- redis 实现发布订阅的功能
redis 除了作为缓存的功能外还可以用作消息中间件的功能,这片博客主要是介绍一下 redis 整合spring 实现消息的发布和订阅功能: 1:redis依赖,依赖两个包,redis 包, spri ...
随机推荐
- Android_(控件)使用ImageView简单实现图片翻转
效果图 1)可以把图像的id存放数组中,利用setImageResource()或setImageDrawable()方法(放在数组中便于循环) 2)已经是第一张图像时,再点击“上一页”,应Toast ...
- sublime tab转4个空格配置
打开Sublime Text3,选择菜单Preferences->Settings-User,打开用户配置文件 然后在大括号里加上下面两行代码: "tab_size": 4, ...
- C++入门经典-例8.2-构造函数的访问顺序
1:父类和子类中都有构造函数和析构函数,那么子类对象在创建时是父类先进行构造还是子类先进行构造?同样,在子类对象释放时,是父类先进行释放,还是子类先进行释放?这都是有先后顺序的.答案是当从父类派生一个 ...
- 黑马lavarel教程---11、响应处理
黑马lavarel教程---11.响应处理 一.总结 一句话总结: 如果在昂扬状态,看学习视频和运动时间重合,会很舒服 1.jquery的$.post参数为什么不需要占位? 因为每个参数的类型不同,可 ...
- Centos7 yum install chrome
一.配置 yun 源 vim /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome baseurl=http:/ ...
- java_切面日志
切面日志举例 package com.keyba1; import java.lang.annotation.ElementType; import java.lang.annotation.Rete ...
- 微服务一键启动脚本shell没有环境变量的
#!/bin/bash#######################################################export JAVA_HOME=/root/data/app/jd ...
- glance-----常用命令
#查看镜像 openstack image list glance image-list #镜像导出 openstack image save <image_id> --file < ...
- cocos creator发布win10全屏缩放问题
当前2.2.1版本cocos creator发布的win32版本不是全屏的, https://forum.cocos.org/t/win-exe/80429 https://blog.csdn.net ...
- openerp学习笔记 tree视图增加复选处理按钮
wizard:用于确认或选择 wizard/sale_multi_action.py # -*- encoding: utf-8 -*-from openerp.osv import fields, ...