• 更新:
  • 投稿:
  • カテゴリィ:

KeyCached プラグイン

ぴろりさんのところで、面白い MT プラグインがリリースされていました。

キャッシュを利用して再構築を高速化するプラグイン KeyCached - Open MagicVox.net

「キャッシュ」とか「再構築」とか「高速化」、それに MT プラグインに目がない自分は、さっそく導入してみました。

これ、かなり通好みでおもしろいですよ。

使い方

個別記事のテンプレートの場合、このような使い方ができます。

<html>
  <head>

    <!-- 記事の更新日と ID を key にする -->
    <MTKeyCachedKey>
    <MTEntryModifiedDate>:<MTEntryID>
    </MTKeyCachedKey>

    <!-- タイトルをキャッシュから生成 -->
    <MTKeyCachedValue>
    <title>
      <MTEntryTitle encode_html="1"> : <MTBlogName encode_html="1">
    </title>
    </MTKeyCachedValue>

  </head>

  <body>

    <!-- 本文もキャッシュ -->
    <MTKeyCachedValue>
    <MTEntryBody>
    </MTKeyCachedValue>

    <!-- 追記も同じ こうやって複数のキャッシュが使える -->
    <MTKeyCachedValue>
    <MTEntryIfExtended>
      <MTEntryMore>
    </MTEntryIfExtended>
    </MTKeyCachedValue>

  </body>
</html>

2007-09-22T09:55:10+09:00 追記

初めの例だと <MTEntryModifiedDate> だけを Key にしていましたが、そうすると「検索・置換」などで一度に更新した場合、同じ内容になってしまいます。そこで、<MTEntryModifiedDate> と <MTEntryID> をKey にしました。

上記の例だと、「タイトル」と「本文」、そして「追記」をキャッシュしています。これらは、記事を更新するまで、つまり <MTEntryModifiedDate>(と <MTEntryID>) が変化するまでは内容が変わらないので、キャッシュする価値が大いにあります。

「通好み」な点

初め、何もわからずに「テンプレート全体を <MTKeyCachedValue> タグで囲む」という無意味なことをやっていました。そんなことしたら、新しく記事を投稿しても「次へ」のリンクが出なくなったり、いろいろ不具合が起こるので注意が必要です。

また、保存されたキャッシュの有効期間はexpireオプションで指定することができます、とのこと。個別記事のキャッシュはともかく、検索結果のキャッシュは有効期間を設けたほうがいいですね。

──というように、事細かにキャッシュする対象を選べる、逆に言うと「どこをキャッシュするか」の知識やセンスが問われる、というところが通好みですね。

実際に使ってみると、かなり再構築が早くなりました。やはり、データベースからデータを持ってきて (X)HTML 化する、という部分がネックになっているようですね。

マニュアル

詳しくはマニュアルをどうぞ。

KeyCached - MovableType Plugins - Trac

特に気をつけるべき点は、ここですね。

MTKeyCachedKeyの内容と構築前のMTKeyCachedValueの内容が全く同じであれば, 一つのMTでテンプレートやブログに関係なく同じキャッシュが使用される点に注意してください。

KeyCached - MovableType Plugins - Trac

[2] このページの一番上へ戻る