<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

    轉載請注明出處哈:http://carlosfu.iteye.com/blog/2269678


       

     一、什么是緩存粒度

     

        下面這個圖是很多項目關于緩存使用最常用的一個抽象,那么我們假設storage層為mysql, cache層為redis。

     

       

     

     

        假如我現在需要對視頻的信息做一個緩存,也就是需要對select * from video where id=?的每個id在redis里做一份緩存,這樣cache層就可以幫助我抗住很多的訪問量(注:這里不討論一致性和架構等等問題,只討論緩存的粒度問題)。

        我們假設視頻表有100個屬性(這個真有,有些人可能難以想象),那么問題來了,需要緩存什么維度呢,也就是有兩種選擇吧:

    Java代碼  收藏代碼
    1. (1)cache(id)=select * from video where id=#id  
    2. (2)cache(id)=select importantColumn1, importantColumn2 .. importantColumnN from video where id=#id  

     

        其實這個問題就是緩存粒度問題,我們在緩存設計應該佮預估和考慮呢?下面我們將從通用性、空間、代碼維護三個角度進行說明。

     

    二、全部數據和部分數據比較

     

    1. 兩者的特點是顯而易見的:

    數據類型通用性空間占用(內存空間 + 網絡碼率)代碼維護
    全部數據

    簡單 
    部分數據

     

     較為復雜

     

     

    2. 通用性:

        如果單從通用性上看,全部數據是最優秀的,但是有個問題就是是否有必要緩存全部數據,認為以后會有這樣的需求,但是從經驗看除了非常重要的信息,那些不重要的字段基本不會在需求里出現,也就是說這種通用性 通常都是想象出來的。太多人覺得通用性是最重要的。vid拿一些基本信息,會想專輯明星。。要不要用通用性高的,于是加了全局的,通用性很重要,但是要想清楚。

     

    3. 空間占用:

        很顯然,緩存全部數據,會占用大量的內存,有人會說,不就費一點內存嗎,能有多少錢?而且已經有人習慣了把緩存當做下水道來使用,什么都框框的往里面放,但是我這里要說內存并不是免費的,可以說是很珍貴的資源。instagram21->4G的例子就說明了這個道理,好的程序員可以幫助公司節約大量的資源。

        而且單個cache(id)也帶來兩個問題:序列化的開銷和網絡流量的開銷(QPS,百倍),都是無容忽視的。

     

    4. 代碼維護:

        代碼維護性,全部數據的優勢更加明顯,而部分數據一旦要加新字段就會修改代碼,而且還需要對原來的數據進行刷新。

     

     

    三、總結:

     

     緩存粒度問題是一個容易被忽視的問題,如果使用不當,可能會造成很多無用空間的浪費,可能會造成網絡帶寬的浪費,可能會造成代碼通用性較差等情況,必須學會綜合數據通用性、空間占用比、代碼維護性 三點評估取舍因素權衡使用。

     


    posted on 2016-12-20 17:13 jinfeng_wang 閱讀(191) 評論(0)  編輯  收藏 所屬分類: 2016-REDIS
    主站蜘蛛池模板: 亚洲黄片毛片在线观看| 四虎免费影院4hu永久免费| 久久成人免费大片| 国产在线观看免费观看不卡| 最近2019中文免费字幕| 日产国产精品亚洲系列| 亚洲国产成人一区二区精品区| 亚洲精品视频在线| 久久国产亚洲精品| 黄色网址免费在线观看| 蜜桃成人无码区免费视频网站| 在线观看免费毛片| 国产亚洲高清不卡在线观看| 2019亚洲午夜无码天堂| 在线成人精品国产区免费| 免费高清在线爱做视频| 久久久亚洲精品国产| 免费无码AV一区二区| 最近最好最新2019中文字幕免费| 最近免费中文字幕高清大全| 亚洲小视频在线播放| 成人免费一区二区三区| 免费在线观看a级毛片| 亚洲综合av一区二区三区| 久久久免费精品re6| 四虎必出精品亚洲高清| 在线a亚洲v天堂网2018| 久久免费视频网站| 亚洲va久久久噜噜噜久久男同| 黄色片网站在线免费观看| 免费羞羞视频网站| 国产国产人免费人成成免视频| 国产成人精品免费直播| 亚洲欧洲av综合色无码| 青青在线久青草免费观看| 亚洲国产精品日韩av不卡在线| 成年女人毛片免费观看97| 成人免费网站久久久| 国产精品亚洲w码日韩中文| 黄色片网站在线免费观看| 亚洲国产综合91精品麻豆|