KeyCached プラグインで再構築の高速化!

シェアする

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

コメント

  1. oscar より:

    こんにちは。
    早速目をつけましたね。
    「ここで、キャッシュを使えたら」ってのは、MT4低強度戦闘中の私の所なら、必ず思う所。
    便利そうで、サッサと試したいんですが、Tracに繋がりません。
    試したいなぁ。

  2. asiamoth より:

    こんにちは。
    このプラグインは、少々マニアックな所が人を選ぶと思いますが、それがいいなー、と。
    いつも思うのですが、こういう便利プラグインを見るたびに「標準でできたらな……」と。──しかし、そんなことを言っていたら、いま以上にサイズが巨大になってしまいますな。