今天優化了乙個用redis佇列非同步解決了提交資料反映時間慢點問題 整理下和大家分享下 一是怕自己忘了 二是希望可以幫助到你們 或多或少提供些思想也是好的...
先看下圖,在沒有優化之前一起提交五套**的速度是這個樣子的
《注 上圖是charles的截圖 響應時間6.86秒》
第一反應是sql的問題 然後把所有的sql 輸出到文字上 發現有查詢是帶*號的sql語句 還有就是夾在迴圈裡的sql 改掉了裡面的迴圈體和sql 當時的sql如下圖
把當時的迴圈邏輯進行優化 但是發現還沒有解決 當時就想是不是在**發生了問題 注釋掉了一些sql和迴圈 速度還是那麼慢 後來發現每次提交**時都在傳送簡訊和郵件 當時我的第一想法是把傳送的curl設定成已微妙為單位的傳送和請求 中途遇到了問題是每次沒有執行傳送郵件 當時真是一陣草泥馬呼嘯而過....
指令碼執行慢的原因是 每次傳送郵件要等返回值!!! 這問題就變得好多了 使用redis把每次傳送郵件請求lpush到redis佇列中 然後在定時指令碼rpop消費 這樣執行時不用等待郵件是否傳送成功 記錄相應的日誌 問題得到解決成就感滿格...
redis 寫入佇列和消費佇列的指令碼** 以及日誌記錄 《上次寫的指令碼日誌利總非常不滿意 所以之後都寫的多想想 每一步執行都要記錄了 謝謝利總》
最後執行速度終於到了185ms 大寫的滿足
php redis佇列流程
redis 1.鏈結redis 使用list型別 根據redis hash特性,設定成功返回1,舊值被覆蓋則返回0,用來控制同一使用者多買現象使用者限制購買一件也可以用hash型別儲存資料 2.使用者請求 獲取list 長度 llen 大於指定長度則返回已購空 3.滿足要求則存入redis 當遇見高...
php redis 訊息佇列
redis是什麼東西就不多說了,網上文章一搜一大堆。首先來說一下我要實現的功能 類似乙個訊息中轉站吧,如果有人要傳送訊息,先將訊息發到我這裡來,然後我這邊進行 為的就是有乙個統一的管理和修改時方便,而且所有的訊息有優先順序,也會有定時傳送 如果同一時間訊息過多,則會有延遲 思路 首先乙個是將這兩個分...
php redis實現訊息佇列
參考 參考 訊息佇列 是在訊息的傳輸過程中儲存訊息的容器。訊息佇列管理器在將訊息從它的源中繼到它的目標時充當中間人。佇列的主要目的是提供路由並保證訊息的傳遞 如果傳送訊息時接收者不可用,訊息佇列會保留訊息,直到可以成功地傳遞它 應用場景 非同步處理,應用解耦,流量削鋒和訊息通訊四個場景 1 非同步處...