Algorithm problem for generating 1 million coupons on JD.com

WBOY
Release: 2016-08-20 09:04:04
Original
2126 people have browsed it

1 million coupons are generated on JD.com, and the coupon number prefix is ​​QA (such as QAK001, QA0U767, QAJUT55, random coupon number). What algorithm can be used to generate 1 million unique coupons? Do these 1 million coupon numbers have to be stored in the database or cache?

Reply content:

1 million coupons are generated on JD.com, and the coupon number prefix is ​​QA (such as QAK001, QA0U767, QAJUT55, random coupon number). What algorithm can be used to generate 1 million unique coupons? Do these 1 million coupon numbers have to be stored in the database or cache?

You can refer to the algorithm Bloom Filter

UUID is recommended.

<code>function guid(){
    if (function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $hyphen = chr(45);// "-"
        $uuid = chr(123)// "{"
                .substr($charid, 0, 8).$hyphen
                .substr($charid, 8, 4).$hyphen
                .substr($charid,12, 4).$hyphen
                .substr($charid,16, 4).$hyphen
                .substr($charid,20,12)
                .chr(125);// "}"
        return $uuid;
    }
}</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template