memcacheに使用可能なメモリがいっぱいになると、memcacheはLRU(最近使用された最後の)アルゴリズムを使用してメモリを解放します。 私の質問は、LRUアルゴリズムは、期限切れのアイテムよりもある時間(最後に最近使用された)使用されなかったエントリをむしろ削除するのでしょうか? 期限切れのエントリは、その瞬間には削除されませんが、誰かが次回アクセスしようとしたときに削除されます(AFAIR)。 LRUアルゴリズム(キー)の有効期限も考慮されますか?LRUは、一定期間使用されていないエントリを削除しますか?
答えて
memcachedがLRUをどのように理解するかを理解するには、memcachedがアイテムをどのように格納するかを理解して理解する必要があります。アイテムはサイズに応じて保存され、100kと同じスラブに保存されるアイテムをすべて入れ、200kのアイテムは別のスラブに保存されます。
メモリがいっぱいになり、100kアイテムを保存しようとすると、memcachedはそのスラブにLRUを適用します。有効期限が切れているか、200kスラブで使用されていないキーは、そこに残ります.100kスラブにホットキーのみがある場合、アルゴリズムに基づくスラブの1つが追い出されます。
あなたの質問に戻ると、メモリがいっぱいになってアイテムを保存しようとすると、memcachedは最初に書き込みしようとしているスラブの期限切れアイテムを探し、最も使用されていないアイテムを探します。したがって、鍵の有効期限を考慮に入れるか、期限切れの鍵をLRUの前に先に実行する方がよいでしょう。
また、有効期限を過ぎているアイテムを取得しようとすると、そのアイテムは追い出され、メモリが再利用されます。 (同様にLRUを説明memcachedのメモリ割り当てのためのGoogleでたくさんなので、これを読むことがたくさん)の
詳細:
http://returnfoo.com/2012/02/memcached-memory-allocation-and-optimization-2/
http://www.adayinthelifeof.nl/2011/02/06/memcache-internals/
そして、私は本当に便利なツールすべてのmemcachedのトピックにお勧めします:
http://code.google.com/p/phpmemcacheadmin/
それが助けてくれることを願います!
私はこの声明が正しいとは思っていません。
「戻るあなたの質問に、メモリがいっぱいになったとき、あなたはアイテムを保存しようと、memcachedは最も使用アイテムを探し、その後、あなたがへの書き込みしようとしているスラブ内期限切れのアイテムのために最初に検索します。だから、はい、キーの有効期限を考慮に入れるか、または期限切れのキーがLRUの前に最初に適用されます。
Memcacheのは、LRU(それは限り、彼らはより多くの最近使用した別のキー(でも有効)よりも、任意の期限切れのアイテムを持っている場合、それは問題ではありません)に応じてアイテムを立ち退かされます。
Memcache 1.4.4で少し前にテストされました。
- 1. XSLTを使用してXMLで定義されていないレベルの重複エントリを削除します。
- 2. エントリが削除されないのはなぜですか?
- 3. 一定期間使用していない状態でテーブルを削除するにはどうすればよいですか?
- 4. IMAP削除メッセージを使用してMailSystem.NETからメッセージが削除されない
- 5. 「インクルード」リストにないすべてのエントリを削除します
- 6. 特定のフィールドの新しいエントリと削除されたエントリに基づいてレポートを整理する
- 7. 削除されたエントリが表示なっている
- 8. 2つの「時間」列に一致しないエントリを削除すると同時に、関連する「値」エントリを削除します
- 9. symfony 2.5 - 一定期間使用しないと自動リダイレクト
- 10. MySQL - 使用されていない行を削除する
- 11. WPF NavigationService "RemoveBackEntry"は最も新しいエントリではなく、最も古いエントリを削除しています
- 12. androidはなぜ使用されているファイルを削除できますか?
- 13. Smartgitの設定ディレクトリを削除してもすべて削除されない
- 14. XDT変換で間違ったエントリが削除されます
- 15. Pythonを使用して引用キーに基づいてbibtexファイルから特定のエントリを削除する
- 16. MATLABを使用して定期データからスパイクを削除
- 17. 非常に短い時間間隔でエントリを削除する
- 18. コンソールアプリケーションを削除しています。なぜそれが削除されていますか?
- 19. 一度削除されないキューは消費されますか?
- 20. Java-Cucumberで使用されていないステップ定義の削除
- 21. R.stringからエントリを削除しましたが、すべての文字列が間違っていますか?
- 22. 古いエントリを削除するには?
- 23. チェックボックスを使用して複数のエントリを削除するにはどうすればよいですか? (PHP)
- 24. JSPサイトからエントリを選択し、SQLとJBDCを使用してデータベースからエントリを削除します
- 25. (覚えておいてください)Awk/SED/Echoを使用してCSVの列エントリを削除する
- 26. 設定されているコントロールが削除された場合、イベントハンドラは削除されますか?
- 27. PDFKitを使用して初期化されない定数エラー
- 28. SQLはサブクエリを使用して多くのエントリを削除します
- 29. quilljsで使用されていないモジュールを削除するには
- 30. アプリが一定期間以上使用されていない場合の通知
本当にありがとう、私が探していた答えでした!追加のリソースをありがとう! – zaphod1984
ああ、そのツールをありがとう! – ahskaus