• 締切済み

smartyのページキャッシュについて

 例えば動的に表示するページにおいて、DBへ登録処理が行われた時に同時にsmartyでページキャッシュを作成するということを実現したいのですが、ページキャッシュを作成する方法は、キャッシュの有効期限を設定する方法しかないのでしょうか?  こうすることで、一部の動的ページを静的と同じ速度で表示できるのかなと考えているのですが、ご存知の方よろしくお願いします。  PHP5.1.1  smarty2.6.5

みんなの回答

  • oka5130
  • ベストアンサー率66% (35/53)
回答No.1

> キャッシュの有効期限を設定する方法しかないのでしょうか? 他にどのような方法を望まれていますか? Smartyのページキャッシュでは、キャッシュIDを指定することで、1つのページを分割して別々にキャッシュすることができます。 DBにアクセスせず、キャッシュにアクセスすることで表示を高速化しようということですよね。 Smartyのキャッシュ以外に、PEARにキャッシュのパッケージがあるので、そちらも検討してみてはいかかでしょうか。 http://pear.php.net/manual/ja/package.caching.cache-lite.php

参考URL:
http://sky.freespace.jp/smarty/SmartyManual_2-6-3J_html/caching.multiple.caches.html
ORmituhide
質問者

補足

遅くなってしまい申し訳ありません。 質問後にPEAR::Cache_Liteを発見して検討していたところです。 > DBにアクセスせず、キャッシュにアクセスすることで表示を高速化しようということですよね。 まさにその通りなのですが、実現したいことは次の通りです。  例えばDBを使った掲示板のような動的に表示するページがあったとして、書き込みが1に対して、DB内を検索して表示するのが50だと想定すると、一々DB内を検索すると50回も同じページを表示するのに効率が悪いと思い、ページキャッシュを検討してみました。 しかし、Smartyのページキャッシュは有効期限ということだったので、それでは掲示板に新しい書き込みがあったとしても、常に最新の書き込みが表示されないのでは? ということで、書き込みがあって、DBに登録した時に同時にページをキャッシュできればいいのかなと考えました。つまり、任意にページキャッシュを作成する方法を探していたのです。  しかし、改めて考えてみると、これが掲示板ではなく商品の詳細ページだったとしたら、商品の数だけキャッシュされたファイルが作成されてしまうということになり、仮に10万個の商品があったら10万個のファイルが出来てしまいます。1ファイル10Kbだとして、1Gbのディスクを使ってしまいます。これが原因で逆に重くなったりということも考えられると思うのですがどうでしょうか?  ページキャッシュについて調べれば調べるほど、使いどころというものが分からなくなってきて困っています。よろしくお願いします。

関連するQ&A