亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Redis--秒殺場景應(yīng)用

lovXin / 880人閱讀

摘要:在大流量程序開發(fā)中,必然會遇到高并發(fā)的應(yīng)用的場景。樂觀鎖實(shí)現(xiàn)秒殺功能它的優(yōu)點(diǎn)如下消息隊列對內(nèi)存消耗較大,個請求,需要操作出隊列。需要結(jié)合實(shí)際的業(yè)務(wù)場景嵌入本文的核心實(shí)現(xiàn)邏輯。

在大流量程序開發(fā)中,必然會遇到高并發(fā)的應(yīng)用的場景。解決方案大致分為兩個方向,消息隊列
redis 實(shí)現(xiàn)消息隊列核心簡單版本
        $key = "quque";
        /**
         * 秒殺商品數(shù)量有限,預(yù)先存儲到消息隊列
         */
        public function qnquque() {
            for($i = 1 ; $i<=5 ;$i++) {
                $redis->lpush($key,$i);
            }
        }
        
        /**
         * 這里省略掉業(yè)務(wù)邏輯處理,默認(rèn)業(yè)務(wù)邏輯處理完,出隊列
         */
        public function dequque() {
            $redis->rpop($key);
            /**
             *  這里開始商品購買后的業(yè)務(wù)邏輯處理
             */
        }

消息隊列是防止超買超賣很好的一種解決方案,要實(shí)現(xiàn)消息隊列的高級功能需要用到專業(yè)的消息隊列工具例如(rabbitmq).用戶Redis 用戶redis實(shí)現(xiàn)消息隊列還是有一些缺點(diǎn)的,可以自行查找文章補(bǔ)充。這邊不一一概述。最大問題還是分布式集群的問題。

Redis 樂觀鎖實(shí)現(xiàn)秒殺功能

它的優(yōu)點(diǎn)如下:

消息隊列對內(nèi)存消耗較大,10000個請求,需要操作10000 出隊列。容易造成內(nèi)存資源瞬間爆棚

使用樂觀鎖的邏輯,CPU相對來說消耗較低、內(nèi)存資源占用少

    $redis = new redis();
    $result = $redis->connect("127.0.0.1", 6379);
    $cachekey = $redis->get("cachekey");
    $number = 100;   //搶購數(shù)量
    if($cachekey<$number){
        $redis->watch("cachekey");
        $redis->multi();
        
        //設(shè)置延遲,方便測試效果。
        sleep(5);
        //插入搶購數(shù)據(jù)
        $redis->hSet("cachekeyList","user_id_".mt_rand(1, 9999),time());
        $redis->set("cachekey",$cachekey+1);
        $result = $redis->exec();
        if($result){
            $cachekeyList = $redis->hGetAll("cachekeyList");
            echo "恭喜".$cachekeyList."搶購成功!
"; }else{ echo "再接再厲"; exit; } }
結(jié)尾

本文并沒有從零開始業(yè)務(wù)分析,都是核心的業(yè)務(wù)邏輯代碼。需要結(jié)合實(shí)際的業(yè)務(wù)場景嵌入本文的核心實(shí)現(xiàn)邏輯。嘿嘿~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/31255.html

相關(guān)文章

  • 秒殺系統(tǒng)優(yōu)化方案之緩存、隊列、鎖設(shè)計思路

    摘要:一為什么難秒殺系統(tǒng)難做的原因庫存只有一份,所有人會在集中的時間讀和寫這些數(shù)據(jù)。又例如搶票,亦與秒殺類似,瞬時流量更甚。 一、為什么難 ????秒殺系統(tǒng)難做的原因:庫存只有一份,所有人會在集中的時間讀和寫這些數(shù)據(jù)。例如小米手機(jī)每周二的秒殺,可能手機(jī)只有1萬部,但瞬時進(jìn)入的流量可能是幾百幾千萬。又例如12306搶票,亦與秒殺類似,瞬時流量更甚。 主要需要解決的問題有兩個: 高并發(fā)對數(shù)據(jù)庫...

    dinfer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<