0

次のように機能する単純なキャッシュシステムがあります。1。エディターが管理パネルに移動します。2。データを入力します。3。データがMySQLに保存され(適切な測定)、HTMLテンプレートに配置されます。

テンプレート自体は、記事が表示される私のページの一部です(のように<article>...</article>)。{id}.htmlとしてHTMLに保存

ユーザーがページ/articles/ 22 /に入るinclude()と、メインテンプレートに対応するHTMLページだけが表示されます。超シンプル。

しかし、それは少し原始的なIMOです。そして、タイトル、コンテンツ、タグなどのフィールドを含むJSONを保存し、これをPHPで解析して、テンプレートに配置する方がよいのではないかと思い始めました。それは私にいくつかの利点を与えます(テンプレートの他の場所にデータを置く可能性のような)、しかし私の最優先事項はスピードです。

つまり、私の質問は、JSON(テキストファイルに事前に保存されている)を取得し、PHPで解析して、事前に保存されたHTMLファイルを含めるよりもテンプレートに入れるのが著しく遅いかどうかです。同時に100件のリクエストについて話しても、ここで不思議に思うことは何もないことは知っていますが、もっと話したらどうなるでしょうか。あるいは、私のアプローチはまったく成熟しておらず、人気のある「ユーザーがページにアクセスし、キャッシュファイルが作成されたのはどれくらい前かを確認し、それを含めるか、期限切れの場合はSQLから取得する」に固執する必要がありますか?私はそれが好きではありません。ユーザーがキャッシュファイルの作成に関与する必要がある理由はないと思います。それらが変更されるのは、エディターがいくつかの変更を行うときだけなので、キャッシュファイルを作成するのはエディターに任せてください。

4

1 に答える 1

0

リードスルー キャッシングを使用すると、長い道のりを歩むことができます。基本的に、オブジェクト (HTML、json、またはフローで動作するものをレンダリングできます) がキャッシュに存在しない場合は、データベースを読み取って構築し、構築したらキャッシュに保存します。

オブジェクトに変更が加えられた場合、キャッシュを削除すると、次に要求されたときにキャッシュが再構築されます。

キャッシュに関しては、おそらく memcached のようなものを使用したいと思うでしょうが、apc もかなりうまく機能します。

于 2013-01-31T15:19:39.523 に答える