2

何千もの Web ページをキャッシュするための最適なソリューションを探しています。現在、私はフラットファイルを使用しています。これは、何千ものフラットファイルが存在するまではうまく機能し、ファイルのキャッシュにアクセスすると、ファイルシステム全体が(大幅に)遅くなります(OpenVZでEXT3を使用してCentOSで実行)。代わりに Redis や MongoDB などの他のオプションを検討したいのですが、それらの方が速いでしょうか? そうでない場合、最良の提案は何ですか?

私のシステムは Web サイトごとに 40K 以上のページを動的に作成するため、メモリ キャッシュを行うことも現実的ではありません。

ありがとう!!

4

4 に答える 4

3

ファイルキャッシュは問題ありません。それについては賢くする必要があります。ディレクトリを、たとえば 500 エントリ以下に保つことを目指しています。40k エントリの場合、URL をハッシュし、ハッシュの最初の 2 バイトを使用するだけで 255 個のフォルダーが得られ、各フォルダーには平均で 150 個のファイルが含まれるはずです。

于 2012-06-28T17:56:39.047 に答える
0

ファイルをサブディレクトリに分散し、キャッシュ ファイル名の md5 ハッシュの最初の 2 または 3 文字 (またはファイル名の最初の 2 または 5 文字のみ) でグループ化することをお勧めします。これにより、ファイル システムの負荷が少し軽減されます。

于 2012-06-28T17:54:27.940 に答える
0

ワニスのようなものを使用することを見たことがありますか? キャッシュしているものと無効化の複雑さに応じて、うまくいく可能性があります。ページを動的に作成し、プロキシ レイヤーに重複したリクエストを処理させます。

https://www.varnish-cache.org/

于 2012-06-30T00:45:19.663 に答える
0

StackExchange が CentOS で Redis を使用していることは知っているので、LAMP スタックからはさらに優れているはずです。Redis はそのような用途向けに最適化されているようですが、MongoDB は実際のデータベースに近いものです。memcached を使用することもできます。

于 2012-06-28T17:52:01.047 に答える