一、緩存通常是這樣的:先查緩存,查不到就查DB,若是DB查不到就結束,DB查到了就寫入緩存。緩存
若是用戶一直在大量地查詢不存在的數據,則全部的請求都會落到DB,並且沒有數據寫入緩存。生命週期
解決方法:把查不到值也緩存下來,好比{"555": null},不過能夠把這種緩存的生命週期調短一點。同步
二、若是大量的緩存過時時間設置成同樣的,那麼他們會在同一時間失效,DB的壓力會在一瞬間驟增。請求
解決方法:能夠把緩存的過時時間設置成相互錯開1-5秒,秒數隨機。方法
三、若是數據不是很大,但查詢量很大,能夠在應用啓動時,把全部的數據都加載到緩存中,並且設置成永不失效。數據
但注意:每一項對底層數據的修改要同步到緩存,不然會形成錯誤.查詢