3

(まず第一に、私の英語はあまり上手ではありません、お願いします)

私たちが知っているように、memcached は遅延有効期限を提供し、スラブ内の LRU データを「置き換え」ますが、これがどのように行われるかはよくわかりません。たとえば、スラブがいっぱいで、このスラブ内の一部のデータの有効期限が切れている場合、データがスラブに追加されるとどうなりますか?

  1. memcached は期限切れのデータを見つけて、それらを追加されたデータに置き換えますか、または
  2. LRU データを置き換えるか、または
  3. それは何か他のことをしますか?

私の知る限り、遅延有効期限は、memcached が各スラブから期限切れのデータを積極的に削除するのではなく、期限切れのエントリのキーが参照されたときに期限切れのエントリのみを削除するようなものです。これは資源の無駄ですよね?

4

1 に答える 1

5

アイテムがリクエストされると (get リクエスト)、Memcached は有効期限をチェックして、クライアントにアイテムを返す前にアイテムがまだ有効かどうかを確認します。

同様に、新しいアイテムをキャッシュに追加するとき、キャッシュがいっぱいの場合、キャッシュ内の最も使用されていないアイテムを置き換える前に、期限切れのアイテムを探して置き換えます。

したがって、期限切れのアイテムは、期限切れのアイテムに対して get 要求が送信された場合、またはストレージが必要なために期限切れのアイテムがクリアされた場合にのみパージされます。

于 2011-05-13T03:50:52.513 に答える