從老李的文章看到的,有空順路坐下筆記,還是不錯的。
- 定時刪除,每設置一個有過期時間的緩存,就爲其新增一個定時器,過期就刪除,不好的地方要太多個定時器
- 惰性刪除,設置一個有過期時間的緩存,每次讀取的時候,判斷是否到期,到期就不返回出去,並刪除掉,但是還是可能會存在一些到期了,而前端用戶沒有訪問,沒有刪除掉的緩存,不過緩存是放在內存還是硬盤裏,總歸是佔用了空間。
- 定期刪除,結合第二種方法,加一個定時器,定時定量的清除掉一些過期的緩存,爲啥定量刪除,而不是全部刪除過期的緩存呢?因爲這本身就是刪除沒用垃圾的一種策略,爲了系統的穩定性,沒必要一次性刪除,避免長時間佔用CPU,影響外部用戶的使用。