Home  >  Article  >  Backend Development  >  Algorithm problem for generating 1 million coupons on JD.com

Algorithm problem for generating 1 million coupons on JD.com

WBOY
WBOYOriginal
2016-08-20 09:04:042127browse

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>
Statement:
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