首頁  >  文章  >  後端開發  >  京東上產生100萬張優惠券演算法問題

京東上產生100萬張優惠券演算法問題

WBOY
WBOY原創
2016-08-20 09:04:042128瀏覽

京東上產生100萬張優惠券,優惠券券號前綴是QA(比如QAK001,QA0U767,QAJUT55,隨機的券號),用什麼演算法能產生100萬張不重複的優惠券?這100萬張優惠券券號碼必須存入資料庫或快取中嗎?

回覆內容:

京東上產生100萬張優惠券,優惠券券號前綴是QA(比如QAK001,QA0U767,QAJUT55,隨機的券號),用什麼演算法能產生100萬張不重複的優惠券?這100萬張優惠券券號碼必須存入資料庫或快取中嗎?

可以參考演算法Bloom Filter

推薦UUID。

<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>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn