上文我们演示了每分钟只允许访问一次,接下来我们演示一下共允许调用1000次,常见业务场景如快递信息调取接口,接口是付费的。比如100元可以查询1000次。
## 共允许调用1000次
~~~
public function somthing($user_id)
{
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
// 次数用完就拒绝调用
if ($redis->get("count:{$user_id}") == 0) {
return ['code' => 422, 'message' => '次数已用完,请充值'];
}
// 在购买接口的时候,支付成功的回调接口中应把调用次数存入 redis 中,供本接口使用
// 调用次数存入 Redis $redis->set("count:{$user_id}", 1000);
// ==========
// do somthing
// ==========
$data = "result";
// 执行过代码后就把调用次数减少一次
$redis->decr("count:{$user_id}"));
return ["code" => 200, "message" => '操作成功', "data" => $data];
}
~~~