アルファサード株式会社 代表取締役 野田 純生のブログ


3倍速再構築!?(MTCMSCacheプラグイン)。


公開日 : 2009-01-20 01:33:57


また同じようなものを書いてしまった...

ドキュメントは明日くらいに時間があったら書きます。要はmt:sectionタグとかMTのテンプレートキャッシュのように時間ベースではなくて、オブジェクトが更新された時にしかるべきキャッシュがクリアされて欲しい...ということで名前の通り元々はCMS(管理画面)用に作ったのですが、デザイン・テンプレートにも使えると思うので晒しておきます。

例:ダッシュボードのタグ・クラウドとか「mt:section」タグ使う事でキャッシュされてます。これ、mt_sessionテーブルにsession_kind「CO」、session_dataにBLOB型のデータとして保存されてるみたいなんですが、有効期限が時間で設定されているだけで、オブジェクトに変化があったかどうかを考慮してキャッシュをクリアしてくれるわけではありません。例えば「タグ」をひとつ削除してもダッシュボードの「タグ・クラウド」は一定時間変更されません。この辺、「割り切った」実装であることはわかるのですが、明示的に関連するデータが変更された時にキャッシュがクリアされるような仕組みがあったらいいな...と思って。

先日公開したMTRequestCacheタグもちょっと仕様を変更してマージしてあります。

テンプレートにもよりますけど、適切に設定してやれば2〜3倍くらいのスピードは出るかも。


# *** Default expires time is 600 (sec)
# If you want to change expires time, add to mt-config.cgi like this,
#
# CMSTemplateCachePeriod 600
#
# *** Template Tags
#
# <MTCMSCacheBlock key="CategoryEntries" blog_id="$blog_id" object_ds="category" 
#                            object_id="$category_id" by_user="1" children="1" primary="1" ttl="3600">
#     Some template tags here.
#      ( Clear cache when entry ( page ) is in ( primary ) category ( folder ) (Id:$category_id) changes. )
# </MTCMSCacheBlock>
#
#
# <MTCMSCacheBlock key="EntrySummary" blog_id="$blog_id" object_ds="entry" object_id="$entry_id" children="1">
#     Some template tags here. ( Clear cache when entry ( page ), comment and trackback changes. )
# </MTCMSCacheBlock>
#
#
# <MTCMSCacheBlock key="TagsBlock" blog_id="$blog_id" object_ds="tag" object_id="0" children="1">
#     Some template tags here. ( Clear cache when tag and tagged entry changes. )
# </MTCMSCacheBlock>
#
#
# <MTSetVarBlock name="key">RecentEntries_<$MTCategoryId$></MTSetVarBlock>
# <MTRequestCacheBlock key="$key" blog_id="$blog_id">
#     Some template tags here. ( Clear cache when application request exit. )
# </MTRequestCacheBlock>



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ