かなり大規模なレガシー プロジェクトで、いくつかの毛むくじゃらのモジュールを Moose クラスにリファクタリングしました。これらの各モジュールは、その属性を (遅延) フェッチするためにデータベース アクセスを必要とします。これらのオブジェクトはかなり頻繁に使用されるため、たとえば変更されていないデータに対する冗長なリクエストの数を減らしたいと考えています。
さて、どうすればそれを適切に行うことができますか?いくつかの選択肢があります:
- 5〜10分の有効期限でそれらを保存するロールを介してMooseクラスにキャッシュを実装します
memcached
(おそらくそれほど難しくはありませんが、遅延属性では注意が必要です)更新:KiokuDBはおそらくここで役立つ可能性があり、属性について読む必要があります - (いずれにせよ実行する必要があります) に移行し
DBIx::Class
、このレベルでキャッシュを実装します (DBIC はおそらくそれだけでほとんどの苦痛を取り除きます) - どういうわけか、オブジェクトを mod_perl プロセス内に永続化します (これを行う方法の手がかりはありません :()
あなたはこれをどのように行いますか?オブジェクトまたは ORM レベルでデータのキャッシュが優先されますか?