網站預計會有很大的查詢量,相較之下寫入資料庫的操作要少很多。 我想的是把資料庫內容分成兩種,一種是用來索引的內容,內容包含各種所需資訊對應的索引項,另一種是其他所要查詢的具體資料內容。 先將具體內容存入memcache,查詢時透過從資料庫中得到的索引值再從memcache中取得對應資料; 寫入資料時則直接寫在mongodb中; 不知道這種做法有什麼不妥,來這尋求下建議~~
学习是最好的投资!
這是一個典型的快取使用場景,基於你使用的技術方案,有幾點是需要考慮清楚的:
「先將具體內容存入memcache,查詢時透過從資料庫中得到的索引值再從memcache中取得對應資料;」這句話,沒太理解,資料要保存到快取中嗎,要是宕機資料不就沒了。
我覺得不知道樓主業務量有多少, mongodb是個混合型數據庫, 就是mongodb也有內存數據庫部分, 寫入瓶頸mongodb並不差, 所以讀的業務應該放到redis這種純的內存數據庫中, 寫的業務就沒必要在費事直接存mongo不是更好?
這是一個典型的快取使用場景,基於你使用的技術方案,有幾點是需要考慮清楚的:
(1) 每次查詢先去快取找是否已經有value
(2) 如果沒有,就是把你的查詢條件依照一定的規則當作key,查詢結果當作value,存入快取並回傳本次查詢結果。
(3) 如果有就直接返回(根據業務需求還要做快取的失效控制,例如有效時長或有新的寫入)
「先將具體內容存入memcache,查詢時透過從資料庫中得到的索引值再從memcache中取得對應資料;」這句話,沒太理解,資料要保存到快取中嗎,要是宕機資料不就沒了。
我覺得不知道樓主業務量有多少, mongodb是個混合型數據庫, 就是mongodb也有內存數據庫部分, 寫入瓶頸mongodb並不差, 所以讀的業務應該放到redis這種純的內存數據庫中, 寫的業務就沒必要在費事直接存mongo不是更好?