<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
    主站蜘蛛池模板: 亚洲精品美女在线观看| 久久久久久a亚洲欧洲aⅴ| 亚洲欧洲精品一区二区三区| 久久高潮一级毛片免费| 无码不卡亚洲成?人片| 美女18毛片免费视频| 国产高清视频在线免费观看| 久久精品国产亚洲av瑜伽| 男女交性永久免费视频播放| 亚洲av综合av一区二区三区| 在线免费观看国产视频| 美女黄色毛片免费看| 久久久久亚洲?V成人无码| 中文字幕无码免费久久9一区9| 亚洲香蕉成人AV网站在线观看| 免费在线黄色电影| 亚洲AV日韩AV永久无码免下载| 99在线在线视频免费视频观看| 亚洲女人18毛片水真多| 四虎影视www四虎免费| 免费精品视频在线| 亚洲无码黄色网址| 国产成人精品一区二区三区免费| 久久久亚洲欧洲日产国码农村| 亚洲欧洲免费视频| 亚洲最大av资源站无码av网址| 国产aa免费视频| A毛片毛片看免费| 亚洲日本一区二区三区| AA免费观看的1000部电影| 性色av极品无码专区亚洲 | 久久免费视频99| 亚洲午夜久久久精品电影院| 日韩免费福利视频| a级毛片无码免费真人久久| 亚洲综合在线成人一区| 国产一区二区三区免费看| 日本在线免费播放| 亚洲无码一区二区三区| 自拍偷自拍亚洲精品情侣| 最近免费最新高清中文字幕韩国|