RedisのUNLINK vs DEL:内部メカニズムの深堀り

2025-01-21
RedisのUNLINK vs DEL:内部メカニズムの深堀り

RedisのUNLINKコマンドとDELコマンドはどちらもキーを削除しますが、内部的な実装が異なります。DELコマンドはキーを同期的に削除しメモリを解放しますが、UNLINKコマンドはキーの削除を非同期的にバックグラウンドキューで処理します。UNLINKの「ノンブロッキング」特性は絶対ではなく、オブジェクトの削除コストを計算します。コストが64未満の場合は同期的に、それ以外の場合は非同期的に削除します。この記事ではRedisのソースコードを詳しく分析し、UNLINKとDELコマンドの実装の詳細、キーのスロット計算、2段階のアンリンク、非同期削除などのメカニズム、そしてLAZYFREE_THRESHOLDの役割について解説します。

開発