PHP使用redis实现抢单功能

1 篇文章 0 订阅
1 篇文章 0 订阅

前置条件 :

  1. 安装redis
  2. 开启redis
  3. php开启redis拓展 ( 直到phpinfo中可以看得到redis )

注意 : 不开启redis也是连接不上的

windows开启redis命令:
开启cmd , 先切到对应的目录 , 如果不想每次切就配环境变量

$ cd "你的redis目录路径"\redis-server 

如果是远程连接或者你的redis配置了密码

$ redis-cli -h host -p port -a password

连接成功之后你会看到redis的信息
ok准备完成
首先连接redis , 默认端口6379

<?php

$redis = new Redis();
$redis->connect('127.0.0.1',6379);

这一步没报错就说明连接成功 , 如果报错请看上面步骤有哪个没实现
我使用的数据类型为列表

//往列表中存入数据
$redis->lpush($key,$value);

获取列表当前长度

$len = $redis->llen($key);

由于redis的列表排序是一个desc的反序 , 所以取出第一条记录的话需要这样取

$list = $redis->lrange($key,$len-1,$len-1);

判断当前的$value是否在列表第一位

if($value != $list[0]){
    //未抢到订单的逻辑
}else{
	//抢到订单的逻辑
}

抢单成功之后清除列表缓存

$redis->del($key);

这里我做的是一个单订单抢单的业务逻辑 , 也就是相当于库存为1
如果需要做多库存的逻辑 , 需要配合上MySQL的剩余库存量做判断 , 不要用查询数据库操作 , 尽量使用缓存来实现 , 因为MySQL不适合处理高并发的情况

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值