国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

memcached - 使用mongodb搭配memcache
PHPz
PHPz 2017-04-24 15:59:35
0
3
931

網(wǎng)站預(yù)計(jì)會(huì)有很大的查詢量,相較之下寫入資料庫(kù)的操作要少很多。
我想的是把資料庫(kù)內(nèi)容分成兩種,一種是用來索引的內(nèi)容,內(nèi)容包含各種所需資訊對(duì)應(yīng)的索引項(xiàng),另一種是其他所要查詢的具體資料內(nèi)容。
先將具體內(nèi)容存入memcache,查詢時(shí)透過從資料庫(kù)中得到的索引值再?gòu)膍emcache中取得對(duì)應(yīng)資料;
寫入資料時(shí)則直接寫在mongodb中;
不知道這種做法有什麼不妥,來這尋求下建議~~

PHPz
PHPz

學(xué)習(xí)是最好的投資!

全部回覆(3)
Peter_Zhu

這是一個(gè)典型的快取使用場(chǎng)景,基於你使用的技術(shù)方案,有幾點(diǎn)是需要考慮清楚的:

  1. 既然選用mongodb,那你這個(gè)查詢場(chǎng)景應(yīng)該是盡量用一個(gè)key能獲取到整個(gè)文檔的數(shù)據(jù),這種查詢正是mongodb最擅長(zhǎng)的,理論上都不需要再做任何優(yōu)化了。
  2. 如果你除了上面這個(gè)情況,會(huì)有多次查詢才能得到想要結(jié)果的情況,可以考慮使用緩存,現(xiàn)在感覺使用Redis會(huì)比Memcached更靈活一點(diǎn)。具體一點(diǎn)處理步驟:
    (1) 每次查詢先去快取找是否已經(jīng)有value
    (2) 如果沒有,就是把你的查詢條件依照一定的規(guī)則當(dāng)作key,查詢結(jié)果當(dāng)作value,存入快取並回傳本次查詢結(jié)果。
    (3) 如果有就直接返回(根據(jù)業(yè)務(wù)需求還要做快取的失效控制,例如有效時(shí)長(zhǎng)或有新的寫入)
我想大聲告訴你

「先將具體內(nèi)容存入memcache,查詢時(shí)透過從資料庫(kù)中得到的索引值再?gòu)膍emcache中取得對(duì)應(yīng)資料;」這句話,沒太理解,資料要保存到快取中嗎,要是宕機(jī)資料不就沒了。

小葫蘆

我覺得不知道樓主業(yè)務(wù)量有多少, mongodb是個(gè)混合型數(shù)據(jù)庫(kù), 就是mongodb也有內(nèi)存數(shù)據(jù)庫(kù)部分, 寫入瓶頸mongodb並不差, 所以讀的業(yè)務(wù)應(yīng)該放到redis這種純的內(nèi)存數(shù)據(jù)庫(kù)中, 寫的業(yè)務(wù)就沒必要在費(fèi)事直接存mongo不是更好?

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板