memcached應用策略(轉)

memcached應用策略(轉)

(2012-04-05 11:10:02)
轉載
標簽:

memcached

應用策略

it

分類: linux_c
memcached應用策略
memcached 主要的作用是為減輕大訪問量對數據庫的沖擊,所以一般的邏輯是首先從memcached中讀取數據,如果沒有就從數據庫中讀取數據寫入到memcache 中,等下一次讀取的時候就可以從memcached中讀取了。但在項目中的具體應用策略(也就是哪些數據應該緩存?怎么樣緩存?過期策略?)就是個問題了。它的一個總原則是將經常需要從數據庫讀取的數據緩存在memcached中。這些數據也分為幾類:
一、經常被讀取并且實時性要求不強可以等到自動過期的數據。例如門戶網站首頁最新文章列表、某某排行等數據。也就是雖然新數據產生了,但對用戶體驗不會產生任何影響的場景。這類數據就使用典型的緩存策略,設置一過合理的過期時間,當數據過期以后再從數據庫中讀取。當然你得制定一個緩存清除策略,便于編輯或者其它人員能馬上看到效果。
二、經常被讀取并且實時性要求強的數據。比如用戶的好友列表,用戶文章列表,用戶閱讀記錄等。這類數據首先被載入到memcached中,當發生更改(添加、修改、刪除)時就清除緩存。在緩存的時候,我將查詢的SQL語句md5()得到它的hash值作為key,結果數組作為值寫入memcached,并且將該SQL涉及的table_name以及hash值配對存入memcached中。當更改了這個表時,我就將與此表相配對的key的緩存全部刪除。
三、統計類緩存,比如文章瀏覽數、網站PV等。此類緩存是將在數據庫的中來累加的數據放在memcached來累加。獲取也通過memcached來獲取。但這樣就產生了一個問題,如果memcached服務器down掉的話這些數據就有可能丟失,所以一般使用memcached的永固性存儲。
四、活躍用戶的基本信息或者某篇熱門文章。此類數據的一個特點就是數據都是一行,也就是一個一維數組,當數據被update時(比如修改昵稱、文章的評論數),在更改數據庫數據的同時,使用Memcache::replace替換掉緩存里的數據。這樣就有效了避免了再次查詢數據庫。
六、session數據,使用memcached來存儲session的效率是最高的。memcached本身也是非常穩定的,不太用擔心它會突然down掉引起session數據的丟失,即使丟失就重新登錄了,也沒啥。
總結,通過以上的策略數據庫的壓力將會被大大減輕。檢驗你使用memcached是否得當的方法是查看memcached的命中率,有些策略好的網站的命中率可以到達到90%以上。
根據以往經驗,在C++開發的服務器上,一般MC應用在以下兩種情況:
讀寫比4:1以上的場景更為恰當,也就是說讀頻率要高于寫頻率越多使用MC進行緩存就越好。
不需要寫庫內容,變化頻率很高,但不需要記錄,如用戶的狀態等,降低數據庫寫壓力。
不需要及時寫庫的內容,變化頻率很高,間隔一定時間后把最新的數據寫入數據庫,降低數據庫寫壓力。

轉載于:https://www.cnblogs.com/heartstill/archive/2012/07/20/2601522.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274722.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274722.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274722.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

突然討厭做前端,討厭代碼_為什么用戶討厭重新設計

突然討厭做前端,討厭代碼重點 (Top highlight)The core of design thinking is to only design something that will bring value and fill the gap in consumer needs. Right? Why else would one design something that no one asked for? While that may be true to some …

那些年我面過的「六年經驗」的初級工程師

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

sql反模式分析2

第八章 多列屬性目標:存儲多值屬性 為一個bug設置多個標簽反模式:創建多個列,為bugs創建tag1,tag2,tag3幾個列保存標簽。標簽必須放于其中一個。1.查詢數據,比如搜索這三列,可以使用in語句2.添…

更多信息請關注微信公眾號_為什么我們更多地關注表面異常?

更多信息請關注微信公眾號Don’t you feel lucky to find a single seasoned curly fry in your bunch of plain old boring french fries? Do you remember highlighting important texts of your study materials before the exams? Both situations might seem irrelevant…

eclipse中的漢字極小的解決方案(轉載)

eclipse中的漢字極小的解決方案(轉載) 可能新裝了eclipse后,寫java代碼的時候發現,寫注釋的時候發現,漢字小的可憐,網上搜一下,又是改字體又是設置字體大小,試用后發現都不是針對這個的方法。 無奈在自己摸…

面試官經常問的觀察者模式如何實現~

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

旅行者 問題_門檻項目:沒有旅行者回到他的原籍城市。

旅行者 問題Sohini Mukherjee| MFA| Spring 2020Sohini Mukherjee | 外交部| 2020年Spring Artivive app to see the full Artivive應用程序可查看完整的#AR experience.#AR體驗。 Prompt:提示: As second semester, first year graduate students, you are at a …

產品經理懂技術=流氓會武術(zz)

最近七年,我都在做互聯網產品,其中前五年分別在創業公司和上市公司里,做別人的產品;近兩年在創業,做自己的產品。 我的體會是:產品經理需要懂技術,創業者尤其需要。但前提是你總覺得有股憋不住的…

技術人的七大必備特質

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

figma下載_在Figma中進行原型制作的技巧和竅門

figma下載自定義過渡和微交互 (Custom transitions and micro-interactions) Yep, I know that there are a lot of useful built-in transition effects in Figma already, but here I want to talk about custom micro-interactions, complicated transitions and show you h…

布局收藏用

http://www.aa25.cn/layout/index.shtml轉載于:https://www.cnblogs.com/OceanChen/archive/2012/07/25/2608882.html

技術日新月異,發展迅速,如何不斷擴展視野

技術日新月異,發展迅速,作為一個與時俱進的互聯網人,需要不斷地學習擴寬視野。今天為大家推薦幾個技術領域中出類拔萃的公眾號,它們的每一篇推文都值得你點開!1葉小釵技術管理 技術轉型 公司治理葉小釵,原騰…

不想當全棧的設計師不是_但我不想成為產品設計師

不想當全棧的設計師不是重點 (Top highlight)I’ve made a huge mistake, I thought to myself, as a realization washed over me in the middle of an interview for a product design role.我對自己想,我犯了一個巨大的錯誤,因為在接受產品設計職務的…

學習 WCF (6)--學習調用WCF服務的各種方法

來自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 根據不同的情況,我們可以用不同的方法調用WCF服務,本文簡單總結了一下調用WCF的一些方法(代理類,Ajax...),分享給大家。開發工具調用WCF 這中…

[科普文] Vue3 到底更新了什么?

Vue3 已經發布一段時間了,這個版本從底層實現到上層 API 設計都發生了非常大的變化,但具體改變了些什么呢?一起簡單盤點下:一、Composition API使用傳統的option配置方法寫組件的時候問題,隨著業務復雜度越來越高&…

ipados_如何設計具有最新iPadOS 14功能的出色iPad應用

ipadosWe all know that iPad Pro already has a seriously powerful computing power and that it’s possible to create meaningful stuff with Apple Pen.我們都知道iPad Pro已經具有強大的計算能力,并且可以使用Apple Pen創建有意義的東西。 But do we really…

分組顯示的ListView分頁加載數據

參考: http://www.cnblogs.com/qianxudetianxia/archive/2011/06/07/2074326.html 分組的ListView的拖拽 http://www.cnblogs.com/qianxudetianxia/archive/2011/06/13/2079253.html ListView分頁加載數據 http://blog.csdn.net/cjjky/article/details/6898871轉載于…

67行JS代碼實現隊列取代數組,面試官刮目相看

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

ux和ui_我怎么知道UI / UX是否適合我?

ux和ui重點 (Top highlight)I’m super excited to be writing this as it’s the first official issue of Visual Q’s! If you don’t already know, this will be a monthly advice column for designers. If you join the newsletter, you’ll receive this before it goe…

HTML4和HTML5的區別[轉]

HTML5是最新的HTML標準,或遲或早,所有的web程序員都會發現需要使用到這個最新的標準,而且,很多人都會感覺到,重新開發一個HTML5的網站,要比把一個網站從HTML4遷移到HTML5上容易的多,這是因為這兩…