1

一部のデータベース操作がキャッシュされている場合に適切に機能する Web アプリケーションがあります。これらは静的データであり、新しいデータは毎日追加されます。データベースの読み取り操作を減らすために、memcached を使用します。

memcached に入れたデータの有効期限を指定しないとどうなりますか。より多くの RAM を消費することでパフォーマンスに影響しますか? データをキャッシュに追加する際に有効期限をなくすのは良いことですか。

PS: AWS を使用して、ngnix、php、mysql で webapp をデプロイします。

4

1 に答える 1

3

おそらく、アプリがまだ 2050 年に実行されている場合、2012 年にさかのぼってキャッシュに入れられたいくつかのものは、もはや関連性がなくなります。ある種の有効期限を指定しない場合、キャッシュのリセット (サーバーの再起動など) のみがキャッシュをフラッシュすることになります。

無限のメモリがない限り (AWS がそれを提供していないと確信しています ;-)、キャッシュされたアイテムに有効期限を追加することをお勧めします。

Memcached は、最近使用されていないメカニズムに基づいてアイテムを期限切れにしますが(指摘してくれた @mikewied に感謝します)、memcache が LRU に基づいてアイテムを削除し始める前に、キャッシュは完全にいっぱいになります。残念ながら、Memcache の LRU アルゴリズムはスラブ単位であり、グローバルではありません。これは、LRU ベースのエビクションが最適ではない可能性があることを意味します。Memcached メモリの割り当てと最適化を参照してください。

于 2012-06-08T05:57:20.437 に答える