就這麼幾個問題,領程序員最頭疼的Redis

目前後端用的緩存,主流的有Redis,對於高併發的系統,實際上會遇到以下的幾個問題:

(前提是一般的業務代碼中,緩存空則去請求數據庫)

1、緩存雪崩現象:由於訪問了沒有緩存,或者已經過期的KEY,導致大量請求到達數據庫

2、緩存擊穿:單個KEY的高併發訪問,高負載導致命中丟失,大量併發查詢到達數據庫

so,如何設計

針對第一個問題,圍繞著解決緩存為空的空窗期,有兩種方案: 一、讀寫分離。業務代碼只負責讀,定時腳本負責寫

就這麼幾個問題,領程序員最頭疼的Redis

二、設置兩個過期時間,一個是業務邏輯上的過期時間,另一個是相對滯後的實際過期時間,在兩個時間點之間,對緩存進行更新

就這麼幾個問題,領程序員最頭疼的Redis

針對第二個問題,把單KEY節點的負載訪問,隨機分散到幾個緩存副本節點中。更新的時候,緩存副本全部同步更新。

就這麼幾個問題,領程序員最頭疼的Redis

有一位旅客到鄉間旅遊,看到一位農夫把喂牛的草料鏟到一間小茅屋的屋簷上,不免感到奇怪。於是就問道:“老伯伯,你為什麼不把喂牛的草放在地上,讓它好好的吃呢?”老伯伯回答道:“這種草質量不好,我要是放在地上它就不會吃,但是我放到讓它可以勉強夠得著的屋簷上,它會努力去吃,直到把全部草料吃個精光!”

這個小故事告訴我們學習PHP全棧laravel實戰、swoole、redis、高併發等喂(xiaopingguo950321)

南極鳥團(722584796)


分享到:


相關文章: