善用 do-while

光風霽月發表於2024-11-16

\(do-while\) 的特性就是先執行一次,然後下一輪執行時再判斷條件
\(redis\) 中有一個經典例子:過期資料的定期刪除
具體演算法執行邏輯:

  • 從資料庫中隨機選取 \(20\)\(key\),並刪除過期的 \(key\)
  • 如果過期的 \(key\) 的數量超過 \(25%\),也就是 \(4\) 個,那麼下一輪將繼續執行上面的刪除過程
  • 並且為了放置刪除執行時間過長,還會設定一個執行時間上限

這個演算法就非常適合 \(do-while\),先無條件執行一次刪除,然後如果過期的 \(key\) 的數量超過 \(25%\),繼續執行。

相關文章