キャッシュ

キャッシュとは便利なもので、あなたのシステムを激的に早くしてくれるでしょう。ただし、作りに次第では開発者を悩ます頭痛の種になってしまうことがあります。 

以下に私独断の考えた失敗しない方法を書いておきます。

あなたが知らなければならないことに、キャッシュには2種類あるということです。

1. よく使用するが、データ内容がほとんど変化しないキャッシュ
2. 定期的に更新が必要なキャッシュ

この2つを混ぜて考えてしまうと、FastCGIなどでプロセスを分けた場合、ロードバランサーなどでサーバを分けたりした場合に大きな問題になってしまいます。

私は1に関しては実際にはキャッシュとは呼ばず、起動時に読み込む変更不可能なグローバル変数として扱います。もし変更が必要な場合アプリを再起動して読み直すことで対応します。

2の場合は、memcachedなどを使用すると解決します。 用は同プロセス内のメモリに保存するのではなく、キャッシュ用の別プロセスに任せ一元化するということです。1よりもパフォーマンス的におちるかも知れませんが、それでも早いはずです。