網站預計會有很大的查詢量,相比之下寫入數據庫的操作要少很多。我想的是把數據庫內容分成兩種,一種是用于索引的內容,內容包含各種所需信息對應的索引項,另一種是其他所要查詢的具體數據內容。先將具體內容存入memcache,查詢時通過從數據庫中得到的索引值再從memcache中取得對應數據;寫入數據時則直接寫到mongodb中;不知道這種做法有什么不妥,來這尋求下建議~~
2 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
“先將具體內容存入memcache,查詢時通過從數據庫中得到的索引值再從memcache中取得對應數據;”這句話,沒太理解,數據要保存到緩存中嗎,要是宕機數據不就沒了。

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
這是一個典型的緩存使用場景,基于你使用的技術方案,有幾點是需要考慮清楚的:
既然選用mongodb,那你這個查詢場景應該是盡量用一個key能獲取到整個文檔的數據,這種查詢正是mongodb最擅長的,理論上都不需要再做任何優化了。
如果你除了上面這個情況,會有多次查詢才能得到想要結果的情況,可以考慮使用緩存,現在感覺使用Redis會比Memcached更靈活一點。具體一點處理步驟:
(1) 每次查詢先去緩存中找是否已經有value
(2) 如果沒有,就是把你的查詢條件按照一定的規則作為key,查詢結果作為value,存入緩存并返回本次查詢結果。
(3) 如果有就直接返回(根據業務需求還要做緩存的失效控制,比如有效時長或有新的寫入)
- 2 回答
- 0 關注
- 868 瀏覽
添加回答
舉報
0/150
提交
取消