教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Redis的數據刪除策略有哪些?【Java面試題】

更新時間:2023年04月19日18時00分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

Redis對數據設置數據的有效時間,數據過期以后,就需要將數據從內存中刪除掉??梢园凑詹煌囊?guī)則進行刪除,這種刪除規(guī)則就被稱之為數據的刪除策略(數據過期策略)。在Redis中提供了兩種數據刪除策略,惰性刪除和定期刪除,下面詳細來看。

惰性刪除

惰性刪除設置該key過期時間后,我們不去管它,當需要該key時,我們在檢查其是否過期,如果過期,我們就刪掉它,反之返回該key。

例如:

set name zhangsan10
get name//發(fā)現name過期了,直接刪除key

優(yōu)點 :對CPU友好,只會在使用該key時才會進行過期檢查,對于很多用不到的key不用浪費時間進行過期檢查。

缺點 :對內存不友好,如果一個key已經過期,但是一直沒有使用,那么該key就會一直存在內存中,內存永遠不會釋放。

定期刪除:每隔一段時間,我們就對一些key進行檢查,刪除里面過期的key(從一定數量的數據庫中取出一定數量的隨機key進行檢查,并刪除其中的過期key)。

java面試問題解答

定期清理有兩種模式:

   • SLOW模式是定時任務,執(zhí)行頻率默認為10hz,每次不超過25ms,以通過修改配置文件redis.conf的hz選項來調整這個次數

  • FAST模式執(zhí)行頻率不固定,但兩次間隔不低于2ms,每次耗時不超過1ms

優(yōu)點:可以通過限制刪除操作執(zhí)行的時長和頻率來減少刪除操作對CPU的影響。另外定期刪除,也能有效釋放過期鍵占用的內存。

缺點:難以確定刪除操作執(zhí)行的時長和頻率。Redis的過期刪除策略:惰性刪除+定期刪除兩種策略進行配合使用

0 分享到:
和我們在線交談!