ブックマーク / zenn.dev/maruloop (1)

  • Redis、まだDELコマンドで消耗しているの?

    煽りタイトルですいません。 Redis のデータ削除によるブロッキング Redis におけるクライアントからのデータ削除は、 v3 系までは DEL ・ FLUSHALL ・ FLUSHDB がありました。 また Redis 自身による削除として、有効期限 (TTL) 切れ時の EXPIRE とメモリ溢れ時の EVICTION 、 Replica が Full Sync し直す際の flush がありました。 特に DEL コマンドや FLUSH 系コマンドは削除対象となるデータ数に比例して処理をブロッキングします。 SET 型や HASH 型で要素数が非常に多い場合は、 1 つの Key を DEL しただけでも数秒処理が止まることもあります。 Lazy Free 機能 Redis v4 以降から、 DEL に対応する UNLINK と FLUSH 系コマンドには async オプション

    Redis、まだDELコマンドで消耗しているの?
    tmatsuu
    tmatsuu 2020/12/16
    DELは処理をブロッキングする。対してLazy FreeのUNLINKコマンドがあるが一時的に消費メモリが跳ねうる。なるほど。
  • 1