検索

ホームページ  >  に質問  >  本文

php - Memcached の flash_all はキーのみを削除し、値は削除しないように設計されているのはなぜですか?

値を削除しないということは、その値がまだメモリ空間を占有していることを意味し、キーがなければこれらの値の存在にアクセスできません。これにはどのような意味がありますか?

PHP中文网PHP中文网2755日前584

全員に返信(1)返信します

  • 迷茫

    迷茫2017-06-12 09:22:27

    この記事をご覧ください:

    遅延有効期限

    Memcached は、レコードの有効期限が切れているかどうかを内部的に監視しません。代わりに、レコードを取得するときにレコードのタイムスタンプをチェックして、レコードの有効期限が切れているかどうかを確認します。 この手法は遅延有効期限と呼ばれます。したがって、memcached は有効期限の監視時に CPU 時間を消費しません。

    flush_all が行うことは 1 つだけです。すべてのキー値を期限切れとしてマークしますが、メモリは再利用しません。当時は記憶を取り戻す必要がなかったからです。次回ユーザーが同じキー値にアクセスした場合にのみ、memcached はキー値をチェックし、その時点でキー値が期限切れであることがわかり、キー値に対応するメモリが再利用されます。この目的は、CPU 時間を最大限に節約することです。

    返事
    0
  • キャンセル返事