<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      memcache在大型網站的應用策略memcache在大型網站的應用策略

      今天看完了日本人mixi寫的“memcached全面剖析”的系列文章,結合我在項目中使用memcache的經驗,再談談memcache在大型網站中的應用策略。

      【部署策略】 
        基于memcached的slab和dump的內存管理方式,它產生的內存碎片比較少,不需要OS去做繁雜的內存回收,所以它對CPU的占用率那是相當的低。所以建議將它跟占用CPU較高的WEB服務器一起使用來節省成本。當然如果你有大量的廉價PC,那用來專門做memcached服務器也不錯。由于32位操作系統中,每個進程最多只能使用2GB內存,所以如果你有大內存的話,可以以daemon的方式啟動兩個以上的memcached服務,或者干脆用64位的CPU和OS。
      【服務監控】  
        memcached支持分布式機制,php通過memcache::addserver來實現該機制,它實現了如果服務器列表中的一臺down掉的時候在參數retry_interval指定的時間就不會再連接該服務器的機制。所以只要你在該時間段內重啟或者修復了該服務器,則不會對前端造成太大的影響。當然了,如果你一直不去重啟該服務器的話,我測試過addserver再次連接一臺down掉的服務器的時間將比平時延長了1秒的時間。可以通過addserver的最后一個參數failure_callback定義一個回調函數來實現郵件通知或者短信通知管理員的功能。  
        如果是手工重啟,我建議將該值設置為20分鐘。不過對于memcached進程死掉的服務器,只要重新啟動memcached,就可以正常運行,所以采用了監視memcached進程并自動啟動的方法的效果最好。mixi推薦的工具:nagios,daemontool
      【應用策略】  
        memcached主要的作用是為減輕大訪問量對數據庫的沖擊,所以一般的邏輯是首先從memcached中讀取數據,如果沒有就從數據庫中讀取數據寫入到memcache中,等下一次讀取的時候就可以從memcached中讀取了。但在項目中的具體應用策略(也就是哪些數據應該緩存?怎么樣緩存?過期策略?)就是個問題了。它的一個總原則是將經常需要從數據庫讀取的數據緩存在memcached中。這些數據也分為幾類:
      一、經常被讀取并且實時性要求不強可以等到自動過期的數據。例如網站首頁最新文章列表、某某排行等數據。也就是雖然新數據產生了,但對用戶體驗不會產生任何影響的場景。
        這類數據就使用典型的緩存策略,設置一過合理的過期時間,當數據過期以后再從數據庫中讀取。當然你得制定一個緩存清除策略,便于編輯或者其它人員能馬上看到效果。
      二、經常被讀取并且實時性要求強的數據。比如用戶的好友列表,用戶文章列表,用戶閱讀記錄等。
        這類數據首先被載入到memcached中,當發生更改(添加、修改、刪除)時就清除緩存。在緩存的時候,我將查詢的SQL語句md5()得到它的hash值作為key,結果數組作為值寫入memcached,并且將該SQL涉及的table_name以及hash值配對存入memcached中。當更改了這個表時,我就將與此表相配對的key的緩存全部刪除。
      三、統計類緩存,比如文章瀏覽數、網站PV等
        此類緩存是將在數據庫的中來累加的數據放在memcached來累加。獲取也通過memcached來獲取。但這樣就產生了一個問題,如果memcached服務器down掉的話這些數據就有可能丟失,所以一般使用memcached的永固性存儲,這方面我們新浪使用memcachedb。
      四、活躍用戶的基本信息或者某篇熱門文章。
        此類數據的一個特點就是數據都是一行,也就是一個一維數組,當數據被update時(比如修改昵稱、文章的評論數),在更改數據庫數據的同時,使用Memcache::replace替換掉緩存里的數據。這樣就有效了避免了再次查詢數據庫。
      六、session數據
        使用memcached來存儲session的效率是最高的。memcached本身也是非常穩定的,不太用擔心它會突然down掉引起session數據的丟失,即使丟失就重新登錄了,也沒啥。見[多服務器session共享之memcache共享]
      【總結】
        
      通過以上的策略數據庫的壓力將會被大大減輕。檢驗你使用memcached是否得當的方法是查看memcached的命中率。有些策略好的網站的命中率可以到達到90%以上。
      【后記】
        
      一、memcached暫時還不支持故障轉移,希望在以后的版本中能支持該功能。當然你可以使用日本人平林幹雄的Tokyo Tyrant 來代替memcached,它支持memcached協議,支持永固性存儲和故障轉移。但我沒有在生產環境中使用過,也沒有相關的性能測試數據。以后會試用一下這個東東。
        二、memcached不支持檢索的功能,在實際使用中比如我們想把一個IP表放在memcached中,來檢索某一個IP屬于那個地區的話,有了檢索功能就方便多了。希望他在以后的版本中能提供該功能。暫時可以通過排序存儲和二分法在客戶端實現。
        三、memcached1.2.2版本確實有不穩定的情況,有時候會出現DOWN機,強烈建議升級至1.2.6的版本。見官方說明:Version 1.2.6
      released. Major crash fixes, DTrace support, minor updates. If you have stability issues with any previous release, please upgrade to this one.
      posted @ 2010-06-04 15:23  abstractwind  閱讀(964)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美喷潮最猛视频| 国产草草影院ccyycom| 中文熟妇人妻av在线| 成av免费大片黄在线观看| 另类 亚洲 图片 激情 欧美| 国产精品538一区二区在线| 日韩国产欧美精品在线| 久久国产精品色av免费看| 精品欧美一区二区三区久久久 | 又大又紧又粉嫩18p少妇| 亚洲精品美女一区二区| 天堂中文在线资源| 黄色国产精品一区二区三区| 精品一区二区三区少妇蜜臀| 亚洲欧美一区二区三区图片| 起碰免费公开97在线视频| 成人网站免费在线观看| 日本公与熄乱理在线播放| 久久国产精品波多野结衣av| 精品视频国产狼友视频| 亚洲精品国产一二三区| 狠狠躁天天躁中文字幕无码| 国产精品综合一区二区三区| 国内熟妇人妻色在线视频| 色噜噜噜亚洲男人的天堂| 不卡一区二区国产精品| 丁香花成人电影| 成人欧美一区二区三区在线观看| 怀柔区| 日韩中文字幕在线不卡一区| 蜜臀av久久国产午夜| 国产av一区二区三区| 青草草97久热精品视频| 高清无码爆乳潮喷在线观看| 精品在免费线中文字幕久久| 内射极品少妇xxxxxhd| 久久综合国产精品一区二区| 丁香婷婷在线观看| 久久综合色之久久综合色| 蜜臀精品视频一区二区三区| 国语精品国内自产视频|