メモリが不足するとRedisは何をしますか? 質問する

メモリが不足するとRedisは何をしますか? 質問する

これは簡単な質問かもしれませんが、答えを見つけるのに苦労しています。Redis 2.0 は、割り当てられた最大メモリの不足をどのように処理しますか? どのデータを削除するか、どのデータをメモリに保持するかをどのように決定しますか?

ベストアンサー1

仮想メモリ機能をオンにしている場合(編集: 現在は廃止されています)、メモリが不足すると、Redis は「あまり頻繁に使用されない」データをディスクに保存し始めます。

Redis の仮想メモリが無効 (デフォルト) で、maxmemoryパラメータが設定されている場合 (デフォルト)、Redis は許可されている以上のメモリを使用しませんmaxmemory。無効にするとmaxmemory、Redis は仮想メモリ (つまりスワップ) の使用を開始し、パフォーマンスが大幅に低下します。

新しいバージョンの Redis には、maxmemoryに達したときのさまざまなポリシーがあります。

  • volatile-lru- 有効期限が設定されているキーの中から、最近使用されていないキーを削除しようとします。
  • volatile-ttl- 有効期限が設定されているキーの中から、残り有効期限が短いキーを削除しようとします。
  • volatile-random- 有効期限が設定されているキーの中からランダムに 1 つを削除します。
  • allkeys-lru- と似ていますvolatile-lruが、通常のキーと有効期限が設定されたキーの両方を含むすべての種類のキーを削除します。
  • allkeys-random- と似ていますvolatile-randomが、通常のキーと有効期限が設定されたキーの両方を含むすべての種類のキーを削除します。

EXPIRE が設定されたキーのみを削除するポリシーを選択した場合、Redis のメモリが不足すると、プログラムは malloc() 操作を中止するだけのように見えます。つまり、さらにデータを保存しようとすると、書き込み操作は単に失敗します。

詳細情報へのリンク:

おすすめ記事