国产成人毛片毛片久久网_国产午夜激无码av毛片不_国产乱对白精彩在线播放_av资源站中文字幕_亚洲男人的天堂网站_国产成 人 综合 亚洲网_中国国产激情一区_少妇一级淫片免费放_亚洲一本大道av久在线播放_免费观看美女裸体网站

安全播報

防御吧作為15年知名老牌域名服務商,CNNIC和CANN雙認證域名注冊商,已經(jīng)
持續(xù)為500多萬個域名提供服務,包括智能DNS/自由轉移/隱私保護等服務!
CDN緩存穿透、緩存并發(fā)、緩存雪崩、緩存抖動、熱點緩存、緩存雙寫一致性等問題
2023-12-08 09:47:21 【

對于高并發(fā)的業(yè)務場景,常用的技術手段包括黑白名單、限流防刷、熔斷降級、兜底、線程隔離、多級緩存(客戶端、CDN、NGINX、內存緩存、分布式緩存)等等。這些手段相互結合,才能應對高并發(fā)場景下的各種細分場景。本文總結了緩存方案需要考慮的幾個問題。


第一,關于緩存穿透,是指大量訪問緩存和數(shù)據(jù)庫中都不存在的數(shù)據(jù)。對此,可以考慮使用兩種方案:緩存空對象(對應key數(shù)量有限、key重復請求概率較高的場景)和布隆過濾器(對應key各不相同、key重復請求概率低的場景),或者兩者同時使用。


第二,關于緩存并發(fā),是指一個緩存如果失效,可能出現(xiàn)多個進程同時查詢DB,同時設置緩存的情況。對此,可以使用三種方案:分布式鎖、消息隊列和永不過期。其中消息隊列需要考慮數(shù)據(jù)一致性和實效性問題,而永不過期則需要考慮數(shù)據(jù)的預熱以及數(shù)據(jù)的更新。


第三,關于緩存雪崩,是指某一時刻大量緩存同時失效,導致請求全部打到DB?梢圆捎萌N方案:緩存過期時間隨機化、多級緩存(不同級別緩存對應不同的失效時間)、緩存永不過期;


第四,關于緩存抖動,一般是指由于某個緩存節(jié)點故障導致該節(jié)點上的緩存數(shù)據(jù)不可用。對此,絕大部分的技術博客都會說使用一致性哈希來解決,個人認為這個說法并不準確。


本人分析了一致性哈希和哈希槽的使用場景對比:以Redis為例,Redis集群采用哈希槽的機制,當集群內某個主節(jié)點宕機之后,其它主節(jié)點會從宕機主節(jié)點的復制節(jié)點中選取一個節(jié)點作為該槽段的新主節(jié)點。也就是說,Redis集群的抖動不是通過一致性哈希來解決的。再以Memocache為例,原生的Memocache不支持集群方式,它的集群機制是由訪問它的客戶端來實現(xiàn)的?蛻舳耸褂靡恢滦怨K惴ǎ瑢⒍嗯_Memocache機器維護成一個緩存集群,當單臺服務器宕機之后,該節(jié)點的緩存數(shù)據(jù)將由其它節(jié)點來承擔(需要引入虛擬節(jié)點)。


第五,關于熱點緩存,是指在某個特定的時間點,某些key會成為訪問的熱點。如短時間內,如果大量用戶同時訪問一個熱點緩存,即使使用Redis作為緩存也可能因為無法響應這么大的流量而導致請求打到數(shù)據(jù)庫,從而導致數(shù)據(jù)庫崩潰。對此,參給出三種解決方案,第一,依賴Redis 4.0及以上版本的功能,通過LFU機制發(fā)現(xiàn)熱點數(shù)據(jù),并定期更新到內存緩存;第二,基于流式計算統(tǒng)計熱點數(shù)據(jù),并基于ZooKeeper等系統(tǒng)更新到內存緩存;第三,利用Redis的集合功能,基于LRU-K算法發(fā)現(xiàn)并緩存熱點數(shù)據(jù),也可以定期將熱點數(shù)據(jù)更新到內存緩存。相比之下,方案一和方案三無需依賴外部流式計算系統(tǒng),成本較低。


第六、關于緩存雙寫一致性問題,是指數(shù)據(jù)寫入請求需要寫數(shù)據(jù)庫并更新緩存,需要處理雙寫的一致性問題。給出以下三種策略:


先更新數(shù)據(jù)庫,再更新緩存


先刪除緩存,再更新數(shù)據(jù)庫


先更新數(shù)據(jù)庫,再刪除緩存


以最大限度避免數(shù)據(jù)不一致或者降低數(shù)據(jù)不一致的時長為目標,對比結果為:推薦使用策略3,即先更新數(shù)據(jù)庫,再刪除緩存。而對于數(shù)據(jù)庫更新成功,而緩存刪除失敗,則有兩種解決方案:一是key過期機制;二是基于mq重試。


】【打印關閉】 【返回頂部
分享到QQ空間
分享到: 
上一篇沒有了 下一篇2024年網(wǎng)絡安全威脅預測有哪些新..

立足首都,輻射全球,防御吧專注云防御及云計算服務15年!

聯(lián)系我們

服務熱線:13051179500 18910191973
企業(yè)QQ:1245940436
技術支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解決防御與加速) 版權所有 增值許可:京B2-20140042號
售前咨詢
公司總機:18910191973
24小時電話:010-56159998
投訴電話:18910191973
值班售后/技術支持
售后服務/財務
備案專員
緊急電話:18610088800