<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
    主站蜘蛛池模板: 亚洲成人黄色在线观看| 好爽又高潮了毛片免费下载| 亚洲?V无码乱码国产精品| 亚洲色无码国产精品网站可下载| 国产2021精品视频免费播放| 69免费视频大片| 亚洲AV无码乱码国产麻豆穿越| 日韩人妻无码免费视频一区二区三区| 亚洲中文字幕久久精品无码喷水| 成人一级免费视频| 免费a级毛片18以上观看精品| 黄床大片30分钟免费看| 亚洲精品A在线观看| 一级做a爱过程免费视频高清| 爱情岛论坛网亚洲品质自拍| 日韩a级无码免费视频| 亚洲日韩区在线电影| 四虎在线免费视频| 亚洲综合久久精品无码色欲| 性做久久久久免费观看| 丝瓜app免费下载网址进入ios| 亚洲乱色熟女一区二区三区丝袜 | 成人免费大片免费观看网站| 亚洲一区在线观看视频| 青青草国产免费久久久下载| 黄色毛片免费观看| 亚洲成色在线影院| 毛片基地免费视频a| 无码亚洲成a人在线观看| 国产一级大片免费看| 成人网站免费大全日韩国产| 亚洲国产精品无码久久久秋霞2 | 成年免费大片黄在线观看岛国 | 伊人久久免费视频| 国产人成亚洲第一网站在线播放| 国产v片免费播放| 少妇无码一区二区三区免费| 亚洲欧美成人综合久久久| 亚洲色大成网站WWW久久九九| 亚洲黄色免费网站| 日韩在线观看免费完整版视频|