/*获取唯一订单号*/ function order_number($order_header){ global $redis; if(trim_all($order_header)!=""){ $order_header=trim_all($order_header)."-"; } $time=time(); $microtime_arr=explode(".",microtime(true)); $order_microtime=str_pad($microtime_arr[1],4,"0",STR_PAD_LEFT); $order_date=date("ymdHis",$time); $order_redis_num=rand(0,9999); if(REDIS_STATE==1){//如果redis服务器正常开启,则获取redis自增值,最大限度降低订单号重复概率 $order_redis_num=$redis->incr("order_redis_num:".$order_date.$order_microtime); $redis->setTimeout("order_redis_num:".$order_date.$order_microtime, 2); //设置两秒后自动过期,释放内存 } $order_redis_num=str_pad($order_redis_num,4,"0",STR_PAD_LEFT);//支持每毫秒9999次访问,解决重复访问,可根据redis访问情况再增大 $order_rand=rand(10,99); $order_number=$order_header.$order_date.$order_microtime.$order_redis_num.$order_rand; return strtoupper($order_number); }