Home > Article > Backend Development > Algorithm problem for generating 1 million coupons on JD.com
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?
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>