記事を始める前に、質問させてください: コマンドを使用する場合: expire key Second
有効期限が切れたら、キーの有効期限を設定します。時間切れです。このキーに対応する 期限切れデータ
は本当にサーバーによってすぐに削除されますか?答えは、すぐには削除されないということです。この答えがわかったら、Redis で期限切れのデータがどのように処理されるかを見てみましょう。
Redis はメモリレベルのデータベースです。すべてのデータはメモリに保存されます。メモリ内のデータは、TTL 命令を通じてステータスを取得できます。 3 つの状態があります:
状態 | |||
---|---|---|---|
# # 時間に依存するデータ | |||
永続的に有効なデータ | |||
は期限切れのデータ、削除されたデータ、または未定義のデータ |
メモリを節約、占有なし | 期間に関係なく、高頻度でCPUリソースを占有します | 時間をスペースと交換します | |
---|---|---|---|
深刻なメモリ使用量 | 実行の遅延、CPU 使用率の高さ | スペースを時間と引き換えに | |
メモリの定期的なランダム クリーニング | メモリを維持するために 1 秒あたり一定量の CPU リソースを費やします | ランダムかつ集中的なチェック |
削除する最も最近使用されていないデータを選択します | |
---|---|
削除する最も最近使用されていないデータを選択してください | ##volatile-ttl |
ランダムにデータを選択して削除します | |
すべてのデータ セットserver.db[i].dict | )
削除する最も最近使用されていないデータを選択します
削除する最も最近使用されていないデータを選択してください | |
---|---|
削除するデータを選択してください | |
データのエビクションを放棄する: |
データのエビクションを無効にする (redis4.0 のデフォルト ポリシー)
以上がRedis 削除戦略の 3 つの方法とエビクション アルゴリズムの例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。