直接储存
connect('127.0.0.1', 6379, 30);
//设置连接密码
$redis->auth('junyi');
//获取出售的数量,默认为空
$kuchun = $redis->get('kucun');
//秒杀数量
$total = 100;
if ($kuchun < $total) {
//监控售出数量是否变动,一旦中途变动就会打断redis事务
$redis->watch('kucun');
//开启事务
$redis->multi();
//设置售出数量+1
$redis->set("kucun", $kuchun + 1);
//执行事务
$result = $redis->exec();
if ($result) {
//剩余数量
$number = $total - ($kuchun + 1);
//$openid 用户id
$openid = $number;
$redis->hset("list", "user_" . $openid, $kuchun);
//获取抢购成功的用户
$data = $redis->hgetall('list');
var_dump($data);
var_dump($number);
} else {
var_dump('手气很差哦,再试一下!');
}
} else {
var_dump('已经被抢光了');
}
}先存后取
connect('127.0.0.1', 6379);
for ($i = 1; $i rPush("goods_list", $i);
}
}
//秒杀
function kill()
{
//假设这是是用户的uid
$uuid = md5(uniqid('user') . time());
//创建连接redis对象
$redis = new \Redis();
//连接到服务器127.0.0.1,端口号6379,默认连接时间300,密码为空
$redis->connect('127.0.0.1', 6379);
//监控列表中的值是否变动
$redis->watch("goods_list");
//开启事务
$redis->multi();
//从左边开始删除一个元素,并把删除的值赋给$goodsId
if ($goodsId = $redis->lPop("goods_list")) {
//秒杀成功,将幸运用户存在集合中
$redis->hSet("buy_order", $uuid, $goodsId);
//执行事务
$redis->exec();
} else {
//秒杀失败,将失败用户计数,默认从0开始+1
$redis->incr("fail_user_num");
}
echo "SUCCESS";
} 如果帮助到你,请赏杯奶茶喝~
- 本文链接: https://www.shx1024.top//index/article/details/article_id/13.shtml
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。