\(do-while\) 的特性就是先執行一次,然後下一輪執行時再判斷條件
\(redis\) 中有一個經典例子:過期資料的定期刪除
具體演算法執行邏輯:
- 從資料庫中隨機選取 \(20\) 個 \(key\),並刪除過期的 \(key\)
- 如果過期的 \(key\) 的數量超過 \(25%\),也就是 \(4\) 個,那麼下一輪將繼續執行上面的刪除過程
- 並且為了放置刪除執行時間過長,還會設定一個執行時間上限
這個演算法就非常適合 \(do-while\),先無條件執行一次刪除,然後如果過期的 \(key\) 的數量超過 \(25%\),繼續執行。