代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
利用Redis生成订单号
作者:
军平
/ 发布于
2015/10/14
/
633
没有收到正确回复, 错误的已删, 下面给出正确的~ 代码中的$this->store 等于一个redis的连接, 主要用到redis的setnx来保证高并发情况下的唯一性, 这里限制每秒生成999个.
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
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
军平
贡献的其它代码
(
28
)
.
获取视频时长
.
某日期(nowDate) 所在周的星期几(weekDay)的日期
.
token验证、防止重复提交
.
多次调用远程对象的方法
.
DataGridView中合并单元格
.
ASP.NET 做网站截图(代码示例)
.
读取http文件保存到本地
.
发光的锚链接
.
遍历控件取值,去某行的所有控件的值
.
相邻13个数字最大乘积
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3