redisがキャッシュするときに有効期限を設定できることは誰もが知っているので、redisはこのキーの有効期限が切れたことをどのように認識し、キーをクリアしますか?
redisのメモリがいっぱいになった場合、なぜキャッシュの書き込みを続行できるのですか?そして、いくつかのキーはクリアされます、理由は何ですか?
上記の問題には、redisの有効期限戦略と排除メカニズムが含まれます。
なぜredisには排除メカニズムが必要なのですか?
redis除去メカニズムの存在は、メモリをより効率的に使用し、メモリの効率と引き換えに特定のキャッシュ損失を使用することです。
Redisの有効期限戦略
Redisには、通常削除と遅延削除の2つの有効期限戦略があります。
-
- 定期的な削除:Redisは、有効期限が100ミリ秒ごとにいくつかのキーをランダムに抽出し、期限が切れているかどうかを確認し、期限が切れている場合は削除します。
- 遅延削除:キーを取得すると、redisはそれをチェックします。キーに有効期限がある場合は、有効期限が切れているかどうかを判断します。有効期限が切れている場合は、直接削除され、何も返されません。
Redisのメモリ消去メカニズム
redisメモリーがほぼ使い果たされると、redisはメモリー削除メカニズムを開始し、いくつかのキーをクリアしてメモリーを解放します。
Redisには、redis.confで構成できる6つのデータ消去戦略が用意されています。maxmemory-policy noeviction
- noeviction:データの立ち退きを禁止します。デフォルトの構成はこれです。メモリ使用量がしきい値に達すると、メモリアプリケーションを発生させるすべてのコマンドがエラーを報告します。
- volatile-lru:有効期限が削除されるように設定されたデータセットから、最も長く使用されていないデータを選択します。
- volatile-ttl:有効期限が削除されるように設定されたデータセットから、有効期限が近づいているデータを選択します。
- volatile-random:有効期限が設定されているデータセットからデータの削除を任意に選択します。
- allkeys-lru:データセットから最も長く使用されていないデータを選択して削除します。
- allkeys-random:データセットからのデータ削除を任意に選択します。
Redisがキーと値のペアを削除することを決定すると、このデータを削除し、このデータ変更メッセージをローカルおよびスレーブに同期します。
以上のことからhttps://www.cnblogs.com/wjh123/p/11254858.html、http://mini.eastday.com/mobile/180918003550027.html#