利用Redis生成订单号
程序员文章站
2022-03-06 16:37:51
...
php代码
class Pay extends Web { /** * 最多以每秒999个的速度生成13位订单号 * * @return string */ function getOrderId() { //哪年,哪天,哪一秒 $base = date('y') . date('z') . str_pad((date('H') * 60 * 60 + date('i') * 60 + date('s')), 5, 0, STR_PAD_LEFT); $next_sec = time() + 1; $pre_max_id = 999; while(time() < $next_sec) { $order_id = mt_rand(1, $pre_max_id); $store_key = parent::getCacheKey('orderIdCache', $base, $order_id); $setRet = $this->store->setnx($store_key, 1); if ($setRet) { $this->store->expire($store_key, 5); return $base.str_pad($order_id, 3, 0, STR_PAD_LEFT); } else { continue; } } return $this->getOrderId(); } }
上一篇: redis访问权限控制,密码设置
下一篇: SQL 必知必会笔记8分组数据
推荐阅读
-
php中利用str_pad函数生成数字递增形式的产品编号
-
C#利用ReportViewer生成报表
-
C#生成唯一不重复订单号
-
ArcGIS API For JavaScript利用GP服务生成等值线、等值面
-
每张表都要生成一张图表利用Excel快捷键直接生成图表法
-
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
-
利用模板生成html页面(NVelocity)
-
利用高考准考证生成器引流一万二,吸粉5000的真实案例!
-
Excel调用已有数据利用已经录入的项快速的生成下拉列表
-
利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验(一)