2 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
“先將具體內(nèi)容存入memcache,查詢時(shí)通過(guò)從數(shù)據(jù)庫(kù)中得到的索引值再?gòu)膍emcache中取得對(duì)應(yīng)數(shù)據(jù);”這句話,沒(méi)太理解,數(shù)據(jù)要保存到緩存中嗎,要是宕機(jī)數(shù)據(jù)不就沒(méi)了。

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