0

flush all コマンドを使用して、Memcache サーバー上のすべてのキーと値のペアを削除しています。

値は削除されますが、phpMemcachedAdmin を使用して Memcache サーバーを参照すると、理解できないことが 2 つあります。

  1. すべてをフラッシュした後、メモリ使用量は 0 にリセットされません。まだ 77% が使用され、22% が無駄になっています (ほんの一例ですが、気合はわかります)。そんなことがあるものか?

  2. 以前のアイテムを含む以前のスラブはすべてまだそこにあります。たとえば、特定のスラブを見ると、flush all コマンドにもかかわらず、以前のすべてのキーと値のペアが表示されます。そんなことがあるものか?

ありがとう

4

1 に答える 1

0

これは、memcache が書き込み時ではなく読み取り時にフラッシュするために発生します。flush_all の場合、その操作はパフォーマンスを考慮して設計されています。つまり、その時間を超えて読み取られたものは、キャッシュに残っていてもすぐに期限切れになります。単一の数値を更新し、フェッチごとにそれをチェックするだけです。

この最適化により、memcache のパフォーマンスが大幅に向上します。他の何人かがフラッシュと同時に検索または挿入している場合を想像してみてください。

于 2014-04-03T15:05:04.173 に答える